0
我使用vscode +打字稿:智能感知+ hasOwnProperty在vscode
let o = {
a: 100
}
console.log(o.hasOwnProperty("a"));
如果創建文本對象,我有期望,像hasOwnProperty()
或toString()
方法出現在智能感知預覽。但他們沒有。
是否可以在Intellisense中顯示這些方法?
我使用vscode +打字稿:智能感知+ hasOwnProperty在vscode
let o = {
a: 100
}
console.log(o.hasOwnProperty("a"));
如果創建文本對象,我有期望,像hasOwnProperty()
或toString()
方法出現在智能感知預覽。但他們沒有。
是否可以在Intellisense中顯示這些方法?
如果您不告訴TypeScript它嘗試從它所知道的對象中推斷出它們的類型。讓我們看看你的示例代碼:
let o = {
a: 100
}
當打字稿看到這樣的代碼,它會自動推斷,看起來像這樣的接口:
interface O {
a: number;
}
你獲得什麼,如果你鍵入o.a
你一個建議告訴你,o.a
是數字類型。現在,如果您想訪問hasOwnProperty
等方法,則必須在該界面上定義它們。 TypeScript帶有一個稱爲Object
的接口。
嘗試以下操作:
interface O extends Object {
a: number;
}
var o: O = {
a: 100
};
現在你有被Object
接口以及自己的屬性,如在這個例子中a
定義的所有方法。如果你在Object
接口只是有興趣,你不必定義一個新的接口,但是簡單地使用它:
var o: Object = {
a: 100
};
但要注意的是o.a
在這種情況下不會使編譯器高興。
這應該會使IntelliSense爲您工作。 ;)
你可以發佈你的tsconfig.json文件嗎? –