Typescript property does not exist on type {}
I have the following code in Typescript. Why does the compiler throws an error?
var object = {};
Object.defineProperty(object, 'first', {
value: 37,
writable: false,
enumerable: true,
configurable: true
});
console.log('first property: ' + object.first);
js.ts(14,42): error TS2339: Property 'first' does not exist on type '{}'.
It's the same code snippet like in the documentation of mozilla (examples section).
Solution 1:
Make the object type any:
var object: any = {};
Solution 2:
Another way is to do interface, so compiler will know that property exists.
interface IFirst{
first:number;
}
let object = {} as IFirst;
Object.defineProperty(object, 'first', {
value: 37,
writable: false,
enumerable: true,
configurable: true
});
console.log('first property: ' + object.first);
Take a look at this question How to customize properties in TypeScript