TypeScript: Cannot create an instance of an abstract class2 min read

Let A: abstract Class and B: B extends A. Now try writing a function with return type of (typeof A) and returning (typeof B)

Extending an abstract class

//Type Input
abstract class Input {
constructor() {
}
}
//Input Select
class Select extends Input {
constructor() {
super();
}
}
//Input Text
class TextField extends Input {
constructor() {
super();
}
}
//Create a new element from string name
let getInputType = (type: string): typeof Input => {
switch (type) {
case 'select':
return Select;
break;
default:
return TextField;
}
}
let elemType = getInputType('select');
//Create new elem
let elem = new elemType();

I get the following error

let elemType: new () => Input
Cannot create an instance of an abstract class.

Solution

Store the type of Input in a variable InputClass

type InputClass = typeof Input;

Extend the type with an Interface InputLike

interface InputLike extends InputClass { };

Result

//Type Input
abstract class Input {
constructor() {

}
}

type InputClass = typeof Input;
interface InputLike extends InputClass { };

//Input Select
class Select extends Input {
constructor() {
super();
}
}

//Input Text
class TextField extends Input {
constructor() {
super();
}
}

//Create a new element from string name
let getInputType = (type: string): InputLike => {
switch (type) {
case 'select':
return Select;
break;
default:
return TextField;
}
}

let elemType = getInputType('select');

//Create new elem
let elem = new elemType();

Who is politicising?2 min read

The military can’t one day decide to go inside Pakistani territory and hit terrorist camps. The Government gives the orders. And who heads the government now? NARENDRA MODI. So the credit for taking the decision goes to NARENDRA MODI. And if Modi says that he took the decision and the previous government just sat and watched, he is just stating the facts.

If Rahul Gandhi and his friends had taken any of these positions –

  • Modi did the right thing. This is the way to deal with Pakistan
  • We welcome the decision, but this is not enough. We need a much tougher approach
  • Welcome the decision, but now we should deescalate and move forward with talks.
  • Violence solves nothing. We need peace, we must talk blahhhh blahhh blahhhhhh….

Nobody would have cared about politicisation. You are making a political point. However dumb your point is, the political debate would continue. The army wouldn’t have been dragged into it. But we all know why the congress party today cannot take such a stand. Because they gave us a dummy prime minster.

300 Terrorists!!

So if 300 terrorists were killed, BJP would get 300,000 more votes. If only 20 were killed, BJP would get only 20,000. If none were killed the BJP would loose the election and Rahul Gandhi will become the Prime Minister.

Nobody cares about the numbers. The point is “Terrorists will be eliminated wherever they are”. But even the congress party doesn’t care about numbers. They just want to create confusion. The “where did you get the numbers” thing is a cover. The aim is to say “Modi is a liar, There were no Surgical Strikes 2.0 ” without saying it.

Also JAI HIND!!!

EPSON DOT matrix char code to set page length in inches (Javascript)51 sec read

Set of codes to set page length

Find the list of char codes at http://stanislavs.org/helppc/epson_printer_codes.html

So to set the length of a page in number of lines, use

var num_lines = 72;
String.fromCharCode(27, 67) + String.fromCharCode(num_lines)

Going by the char code list to set the length of the page in inches, we should use

var page_inches = 12;
String.fromCharCode(27, 67, 48) + String.fromCharCode(page_inches);

But it just doesn’t work!!!!!

What happens is the printer thinks you want to set the page length to 48 lines and not 12 inches. Also char code 12 means form feed, so you get one of that too..

I solved it by using

var page_inches = 12;
String.fromCharCode(27, 67, 0) + String.fromCharCode(page_inches);

So you need to add String.fromCharCode(0) and not String.fromCharCode(48) and you will get a page length of 12 inches.