JSDoc导入TypeScript命名空间VSCode无法识别,求批量导入方案
解决VSCode无法识别JSDoc类型命名空间的问题
方案1:在类型文件中导出命名空间
首先修改你的types.d.ts,将类型包裹在命名空间内并导出:
// types.d.ts export namespace Types { export type K = { id: string }; // 在这里添加其他需要的类型 }
然后在test.js中通过JSDoc导入整个命名空间:
// test.js /** * @typedef {import('./path/to/types').Types} Types * @param {Types.K} props */ const testFunction = (props) => console.log(props.id);
方案2:导出独立类型并批量导入
如果不想在类型文件中使用命名空间,可以直接导出所有类型,再通过JSDoc批量导入:
// types.d.ts export type K = { id: string }; export type L = { name: string }; // 其他类型...
在test.js中:
// test.js /** * @typedef {import('./path/to/types')} Types * @param {Types.K} props */ const testFunction = (props) => console.log(props.id);
额外提示
- 确保
import中的路径是test.js相对于types.d.ts的正确相对路径,无需添加.d.ts后缀。 - 在项目根目录创建
jsconfig.json文件,帮助VSCode更好地识别项目结构和类型:
{ "compilerOptions": { "module": "ESNext", "target": "ES6" }, "include": ["**/*.js", "**/*.d.ts"] }
内容的提问来源于stack exchange,提问作者Taige Wang
相关产品推荐
相关产品推荐

