Ale*_*sev 6 javascript types annotations jsdoc ecmascript-6
我可以使用 JSDoc注释为变量一声明类型@type吗?
/** @type some.type */
for (let one of many) {
...
}
Run Code Online (Sandbox Code Playgroud)
类似 PHPDoc 的注释:
/** @var \Some\Type $one */
foreach ($many as $one) {
}
Run Code Online (Sandbox Code Playgroud)
是的你可以。你只需要在你的变量之前移动括号内的类型声明:
for (/** @type {SomeType} */ const one of many) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
这工作得很好,尽管我通常更喜欢指定类型many。例如:
/** @type {Number[]} */
const many = [1, 2, 3, 4];
Run Code Online (Sandbox Code Playgroud)
然后one会自动推断出类型。
PS:注意我声明one为const. 不管人们怎么猜,你都可以将for..of循环变量声明为常量!