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文件吗? –