[英]Missing intellisense when importing .ts file in .js file
我尝试使用tsx运行由 JavaScript 和 Typescript 模块组成的 NodeJS 应用程序。 JavaScript 模块是 ESM,而不是 CommonJS。 例如我有这些文件:
// provider.ts
export funcA(p: unknown): unknown {...}
// consumer.js
import * as provider from "./provider.ts"
provider.funcA("foo");
它与 tsx 一起运行得很好。 VSCode 的智能感知在 TS 文件中运行良好,但在 JS 文件中却不行。 当我 hover provider
显示import provider
时,我没有任何完成。 这是我的tsconfig.json
:
{
"compilerOptions": {
"module": "NodeNext",
"target": "ESNext",
"allowJs": true,
"strict": true,
},
"include": [
<the directory containing both JS and TS files>
],
}
如何让 Intellisense 在 VSCode 中工作,以便在我的 JS 文件中导入 TS?
我找到了解决方案。 当我导入.ts
模块时,似乎 TypeScript 无法理解。
我不得不删除导入的.ts
部分。 我必须在我的tsconfig.json
中添加"moduleResolution": "Node"
以消除解析错误。
我的 eslint 配置也遇到了一些问题。 我安装了包@typescript-eslint/parser
和eslint-import-resolver-typescript
并将其添加到我的.eslintrc.json
:
"extends": [
...
"plugin:import/typescript"
],
...
"settings": {
"node": {
"tryExtensions": [".js", ".node", ".ts"]
}
}
现在它起作用了。 我在我的 JS 文件中获得了完整的 Intellisense。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.