Javascript 如何使用JSDoc记录符号索引签名以符合typescript?
我使用纯Javascript创建一个类,并使用JSDoc对其进行文档化,我使用typescript进行类型检查 但是我不知道如何正确地编写JSDoc,以便它能够使用符号识别字段访问Javascript 如何使用JSDoc记录符号索引签名以符合typescript?,javascript,typescript,visual-studio-code,jsdoc,Javascript,Typescript,Visual Studio Code,Jsdoc,我使用纯Javascript创建一个类,并使用JSDoc对其进行文档化,我使用typescript进行类型检查 但是我不知道如何正确地编写JSDoc,以便它能够使用符号识别字段访问 const secret=Symbol('secret'); 类MyClass{ 构造函数(){ /**@type{Map}*/ 此[秘密]=新映射(); } 方法(){ 常量映射=此[秘密]; //应在下一行中给出错误,因为1不是字符串 映射集(1,'2'); } } 我从VSCode得到的结果如下(正如您所看到
const secret=Symbol('secret');
类MyClass{
构造函数(){
/**@type{Map}*/
此[秘密]=新映射();
}
方法(){
常量映射=此[秘密];
//应在下一行中给出错误,因为1不是字符串
映射集(1,'2');
}
}
我从VSCode得到的结果如下(正如您所看到的,map的类型为any
):
在TypeScript中,使其工作起来非常容易,只需像任何其他类属性一样声明它
const secret=Symbol('secret');
类MyClass{
[秘密]:映射;//在此处声明
构造函数(){
此[秘密]=新映射();
}
方法(){
常量映射=此[秘密];
映射集(1,'2');
}
}
我得到的VSCode(typescript)错误:
您已将
秘密
签名作为地图
sosecret
必须将第一个参数设置为string
,第二个参数设置为number
正确的例子是
map.set('2',1)
我在tsconfig
文件中启用了Javascript检查。另外,我的问题是TypeScript无法识别map.set(1,'2')代码>作为错误,与typescript不工作无关。