Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.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类_Javascript_Typescript_Visual Studio Code_Intellisense_Jsdoc - Fatal编程技术网

Javascript 如何使用静态属性创建jsdoc类

Javascript 如何使用静态属性创建jsdoc类,javascript,typescript,visual-studio-code,intellisense,jsdoc,Javascript,Typescript,Visual Studio Code,Intellisense,Jsdoc,如何在此处获得有效设置? 我希望能够将id属性与静态类\u Test.list 但是我无法在vscode中找到使用intellisense的正确方法。 所以不是所有的数字都来自\u测试。列表字典,应该给我错误。 任何人都可以帮助我使用jsdoc plz正确格式化此文件。 对不起,如果是一个noob问题,我从jsdoc开始 class\u测试{ 静态列表={a:1,b:2,c:3}; 构造函数(){ /** *@typedef{Object}数据 *@property{u Test.list}

如何在此处获得有效设置?

我希望能够将
id
属性与静态类
\u Test.list
但是我无法在vscode中找到使用intellisense的正确方法。 所以不是所有的数字都来自
\u测试。列表
字典,应该给我错误。

任何人都可以帮助我使用jsdoc plz正确格式化此文件。 对不起,如果是一个noob问题,我从jsdoc开始

class\u测试{
静态列表={a:1,b:2,c:3};
构造函数(){
/**
*@typedef{Object}数据
*@property{u Test.list}DATA.id-list{u Test.list中的id
*@property{u Test.list}DATA.id2-list{u Test.list中的id
* 
*/
/**@类型{DATA}*/
此列表={
id:_Test.list.a,//应该可以
id2:14,//应该显示一个错误
}
}
};
我想这样做是因为我需要在vscode中保留引用特性。
JSDoc不像const
那样有
的概念,至少在VS-code的Typescript中是这样。但您可以显式地给出一个文本类型:

/**@type{{a:1,b:2,c:3}*/
静态列表={a:1,b:2,c:3}
但首先定义允许的值并在索引签名中使用它们更简单:

/**@typedef{1 | 2 | 3}值*/
/**@typedef{{[s:string]:value}}数据*/
/**@type{DATA}*/
静态列表={a:1,b:2,c:3}
然后您也可以在其他地方使用
数据

class\u测试{
/**@type{DATA}*/
静态列表={a:1,b:2,c:3};
构造函数(){
/**@type{DATA}*/
此列表={
id:_Test.list.a,//应该可以
id2:14,//应该显示一个错误
}
}
};
只需要更新 现在intellisence支持jsdoc与ts的混合 所以我们可以使用
@type{keyof staticList}

非常次要的旁注:您不使用
在类声明之后(这是上面的内容)。也不是在构造函数定义(或方法)之后。但是,除非你有意依赖ASI,否则在赋值之后(在构造函数中)使用一个。我把它作为示例,认为它更具可读性。很抱歉。@T.J.Crowder是的,我创建了一个typedef,在这里我想链接
DATA.id
\u Test.list
,我不能正确地引用类的静态属性,可能我做得不好。
\u Test.list[…]
是数字类型在这种情况下,问题是如果我做了
@property{number}DATA.id
我可以分配任何数字示例12、14,如果我分配的数字不在静态字典中,我希望出现错误
\u Test.list[…]
我会用更多图片更新消息。哇,太棒了,非常感谢你,我浪费了太多时间尝试使用vscode工作
@enum
,你的解决方案工作正常。