Just trying to write a function within a class using typescript.
class Test
{
function add(x: number, y: number): number {
return x + y;
}
}
This results in the following error:
TypeScript Unexpected token, A constructor, method, accessor or property was expected.
I copied the example from: https://www.typescriptlang.org/docs/handbook/functions.html
Am I missing something? I'm confused!
You shouldn't use the function
keyword in a Typescript class definition. Try this instead:
class Test { add(x: number, y: number): number { return x + y; } }
TypeScript does not allow function
declarations as class members; it has a slightly different syntax for that...
class Test { // This will bind the add method to Test.prototype add(x: number, y: number): number { return x + y; } // This will create a closure based method within the Test class add2 = (x: number, y: number) => { return x + y; } }
The same error is also thrown when you try to access a property outside a life-cycle hook. You need to access them in a life-cycle hook or constructor like:
class Test {
x: number;
y: number;
add(x: number, y: number): number {
this.x = x;
this.y = y;
return this.x + this.y;
}
}
...
export class Component implements OnInit {
test: Test = new Test();
test.x = 0; // NOK, will throw: Unexpected token, A constructor... error
constructor() {
test.x = 0; // OK
}
ngOnInit(): void {
test.x = 0; // OK
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With