Javascript VSCode仅在’;它是从某处进口的;如何在Foo.js本身中启用intellisense?
该设置是一个“Create React App”,具有以下Javascript VSCode仅在’;它是从某处进口的;如何在Foo.js本身中启用intellisense?,javascript,reactjs,typescript,visual-studio-code,Javascript,Reactjs,Typescript,Visual Studio Code,该设置是一个“Create React App”,具有以下jsconfig.json: { "compilerOptions": { "experimentalDecorators": true, "baseUrl": "src" }, "include": ["src"] } 目录结构: . └── src └── Components
jsconfig.json
:
{
"compilerOptions": {
"experimentalDecorators": true,
"baseUrl": "src"
},
"include": ["src"]
}
目录结构:
.
└── src
└── Components
└── Foo
├── Bar
│ ├── Bar.js
│ ├── Bar.d.ts
│ └── index.js
├── Foo.js
└── index.js
但是
Bar.js
本身并没有从自己的Bar.d.ts
文件中获得intellisense,有没有办法修复它?我尝试了三重斜杠指令(//
),但没有效果。一些JSDoc有帮助,但是有一个专用的声明文件并且仍然使用JSDoc是毫无意义的;它也可能只适用于VSCode,这是不可取的:
export function Bar(
// When `type Props` is exported from the `.d.ts`:
/** @type {import("./Bar").Props} */ props
) {
您可以像在typescript中一样使用JSDoc定义类、函数和所有内容 我做的最好的用法之一就是在文件中。
我不想提交包含DB凭据的文件。因此,我在JSDoc中定义了一个类、enum等。到2020年9月,这是为了(): […]不支持“将.d.ts作为.js的侧车”的场景。这里推荐使用jsdoc编写类型注释
关注TypeScript的开发,看看它将来是否会改变。VSCode还允许您使用JSDoc获取类型提示——我在仅JS的项目中大量使用它,不过我会说明您是否愿意使用TS定义文件,为什么不一直使用TS?@Jhecht我确实是从JSDoc开始的,我不记得我在使用它时遇到了什么intellisense问题(很久以前),但这就是为什么我转而使用声明文件描述形状,这最终比JSDoc更适合我。我不想在细节上打扰您,但是要完全为项目提交TypeScript是非常困难的,因为这会增加另一层复杂性,而我还没有准备好处理。
// And gets full intellisense via `Bar.d.ts`:
type Props = {
/** ... */
}
export declare function Bar(
props: Props
): React.FunctionComponent
export function Bar(
// When `type Props` is exported from the `.d.ts`:
/** @type {import("./Bar").Props} */ props
) {