Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用JSDoc记录符号索引签名以符合typescript?_Javascript_Typescript_Visual Studio Code_Jsdoc - Fatal编程技术网

Javascript 如何使用JSDoc记录符号索引签名以符合typescript?

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得到的结果如下(正如您所看到

我使用纯Javascript创建一个类,并使用JSDoc对其进行文档化,我使用typescript进行类型检查

但是我不知道如何正确地编写JSDoc,以便它能够使用符号识别字段访问

const secret=Symbol('secret');
类MyClass{
构造函数(){
/**@type{Map}*/
此[秘密]=新映射();
}
方法(){
常量映射=此[秘密];
//应在下一行中给出错误,因为1不是字符串
映射集(1,'2');
}
}
我从VSCode得到的结果如下(正如您所看到的,map的类型为
any
):

在TypeScript中,使其工作起来非常容易,只需像任何其他类属性一样声明它

const secret=Symbol('secret');
类MyClass{
[秘密]:映射;//在此处声明
构造函数(){
此[秘密]=新映射();
}
方法(){
常量映射=此[秘密];
映射集(1,'2');
}
}
我得到的VSCode(typescript)错误:

您已将
秘密
签名作为
地图
so
secret
必须将第一个参数设置为
string
,第二个参数设置为
number

正确的例子是

map.set('2',1)

我在
tsconfig
文件中启用了Javascript检查。另外,我的问题是TypeScript无法识别
map.set(1,'2')作为错误,与typescript不工作无关。