Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to solve the TS7009 TypeScript error?

Tags:

typescript

I am new in Typescript programming. Now I am in learning phase. I have face a problem during coding through receiving an error in back end console. The above mentioned code is:

function employee(id:number,name:string) { 
   this.id = id 
   this.name = name 
} 

var emp = new employee(123,"Smith") 
employee.prototype.email = "[email protected]" 

console.log("Employee 's Id: "+emp.id) 
console.log("Employee's name: "+emp.name) 
console.log("Employee's Email ID: "+emp.email)

Output @ Browser console is:

www.ts:10 Employee 's Id: 123
www.ts:11 Employee's name: Smith
www.ts:12 Employee's Email ID: [email protected]

And the error in Node console is:

[0] www/www.ts(6,15): error TS7009: 'new' expression, whose target lacks
a construct signature, implicitly has an 'any' type.

Please help me to resolve this error. Thanks....

like image 797
Sukalyan Banga Avatar asked Feb 08 '17 06:02

Sukalyan Banga


2 Answers

In TypeScript you should use new only on classes. Consider rewriting it like so:

class Employee {
    id: number;
    name: string;
    email: string;

    constructor(id:number, name:string) {
        this.id = id;
        this.name = name;
    }
}

let emp = new Employee(123,"Smith");
emp.email = "[email protected]";

I don't understand what you were trying to achieve with the prototype property assignment.

like image 104
Dan Homola Avatar answered Nov 14 '22 17:11

Dan Homola


If you don't want to change your existing code, you can use:

new (employee as any)(123, "smith")
like image 1
oerol Avatar answered Nov 14 '22 18:11

oerol