javascript - Typescript-egenskap finns inte på typen {}
Jag har följande kod i Typescript. Varför kastar kompilatorn ett fel?
var object = {};
Object.defineProperty(object, 'first', {
value: 37,
writable: false,
enumerable: true,
configurable: true
});
console.log('first property: ' + object.first);
js.ts(14,42): fel TS2339: Egenskapen 'first' finns inte på typen '{}'.
Det är samma kodsnutt som i Mozillas dokumentation (exempelavsnittet).
Svar #1
Ett annat sätt är att använda ett gränssnitt, så att kompilatorn kommer att veta att egenskapen finns.
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);
Titta på den här frågan Hur man anpassar egenskaper i TypeScript
Svar #2
Gör objekttypen any:
var object: any = {};
