繁体   English   中英

在.js 文件中导入.ts 文件时缺少智能感知

[英]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/parsereslint-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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM