截至2018年5月(v1.24)版本的VSCode,TypeScript版本已更新至2.9,其中包括
import()
类型。
这意味着我们也可以使用
导入()
在JSDocs中,例如:
/** @type {import('./typings/test').Person} */
const p = {};
和/或
/** @typedef {import('./typings/test').Person} Person */
/** @type {Person} */
const p = {};
这还允许我们引用其他JavaScript文件中定义的类型,即使它们没有导出。不
tsconfig.json
或任何其他需要的配置文件,无需使用TypeScript文件。完整示例:
func1.js
/**
* @typedef MyStruct
* @property {string} fu
* @property {number} bar
*/
module.exports = function func1() {
// ...
}
func2.js
/**
* @param {import('./func1').MyStruct} options
*/
module.exports = function func2(options) {
// ...
// IntelliSense definition for this function:
// func2(options: MyStruct): void
}
您还可以引用节点模块中的类型:
/** @type {import('async').AsyncCargo} */
注:
我确实发现了一个可能的bug。如果文件
导入()
不导出任何内容,intellisense中断。