有人可以解释为什么我在'this'变量的'setItem'函数中没有获得智能感知。我的理解应该是'_storageAdapter'属性的范围?TypeScript - 'this'默认为'any'
class TestClass {
private testOne =() => {
}
_storageAdapter: {
toType: (obj: any) => string,
getItem: (key: string) => void,
setItem: (key: string, value: string) => void,
}
= {
toType: (obj: any) => {
return "hello";
},
getItem: (key: string) => {
this.testOne() // this is class scoped;
},
setItem: function (key: string, value: any) {
this.toType(value); // this should be property scoped? but no intellisense? its just set to 'any'
}
}
}
谢谢。我想我的抱怨是,那么没有办法在构建或编译时检查错误。你可以在setItem中输入this.ANYTHING,它只会在运行时制动。另外,无论使用胖箭头还是常规函数,只能在_storageAdapter属性外调用_storageAdapter中的内部函数。 Bummer – dotsa
您可以像使用其他两个箭头函数一样使用箭头函数,但为什么不只是将这些函数用作类方法,而是将它们放在该对象中? –
是的。我可以将它提取到一个可选的接口和一个类。我只是想看看我能推多少TS,然后才能给我强烈的类型化对象和智能感知。 – dotsa