Class VSCode intellisense-类实例数组
我知道VS代码的intellisense由TypeScript编译器提供支持,但我不是在写TypeScript,只是很好的ol'ES2015 无论如何,VS代码intellisense与ES6类配合得很好,但我在这里遇到了一系列的类。我敢说这超出了编译器的能力范围,但是有没有办法编写代码,使编译器能够推断数组中存储的对象的类型?很明显,这是最好的猜测 这是我的代码,告诉你我的意思Class VSCode intellisense-类实例数组,class,ecmascript-6,visual-studio-code,intellisense,Class,Ecmascript 6,Visual Studio Code,Intellisense,我知道VS代码的intellisense由TypeScript编译器提供支持,但我不是在写TypeScript,只是很好的ol'ES2015 无论如何,VS代码intellisense与ES6类配合得很好,但我在这里遇到了一系列的类。我敢说这超出了编译器的能力范围,但是有没有办法编写代码,使编译器能够推断数组中存储的对象的类型?很明显,这是最好的猜测 这是我的代码,告诉你我的意思 class JSONPayloadApi { constructor(payload) {
class JSONPayloadApi {
constructor(payload) {
this.apiName = payload.ApiName;
this.apiRoot = payload.ApiRoot;
this.apiTkn = payload.ApiTkn;
}
}
class JSONPayload {
constructor(value) {
const payload = JSON.parse(value);
this.apis = payload.Apis.map((x) => new JSONPayloadApi(x));
}
}
// Pretend ive already created an instance of JSONPayload
const api = jsonPayLoad.apis[0];
在上面的代码中,VS code是否可以推断api
实际上是JSONPayloadApi
的一个实例,并相应地提供intellisense
我想得越多,我想就越不可能,因为事实发生后,我们可以在数组中添加我们想要的东西,破坏智能感知的任何意义。除非阵列被冻结
这不是任务关键型的或任何东西,更只是对VS代码智能感知能力的好奇。要获得更好的智能感知,可以在javascript代码中使用@ts check注释。您必须向特定的非推断类型提供jsdoc注释。比如:
// @ts-check
let easy = 'abc'
easy = 123 // Error: Type '123' is not assignable to type 'string'
永远不要忘记它提供的类型脚本和语言服务只在编译时工作。由于javascript的动态特性,在运行时对“损坏”数据没有任何限制。为了获得更好的智能感,您可以在javascript代码中使用@ts check注释。您必须向特定的非推断类型提供jsdoc注释。比如:
// @ts-check
let easy = 'abc'
easy = 123 // Error: Type '123' is not assignable to type 'string'
永远不要忘记它提供的类型脚本和语言服务只在编译时工作。由于javascript的动态特性,在运行时对“损坏”数据没有任何限制。使用
jsDoc
注释直接起作用,似乎不需要ts check
注释。ts check
注释似乎不需要,使用jsDoc
注释直接起作用,谢谢。