TypeScript VScode在有json导入后建议错误的ts自动导入路径

xlpyo6sf  于 6个月前  发布在  TypeScript
关注(0)|答案(8)|浏览(49)

TypeScript 版本: 3.1.6,但也尝试过 3.3.0-dev.201xxxxx
搜索关键词: auto import json 错误模块路径 js 扩展名问题 bug
代码

https://stackblitz.com/edit/typescript-json-import-issue

我没有任何用于管理导入的 vscode 扩展,而且据我所知,vscode 依赖于 typescript 来显示模块导入建议,所以我希望这是这个问题的正确地方。

tsconfig.json

{
	"compilerOptions": {
		"module": "es2015",
		"moduleResolution": "node",
		"resolveJsonModule": true,
		"esModuleInterop": true
	}
}

预期行为:

当我们有:
import packageJson from './package.json';
在 VSCode 自动导入模块时,自动完成建议为:
import { testing } from './test';

实际行为:

在 VSCode 自动导入模块时,自动完成建议为:
import { testing } from './test.js';

实验链接:
相关问题:

vql8enpb

vql8enpb1#

我认为我们应该使用导入中的扩展存在来确定是否应该在新导入中包含扩展 - 我们可能不应该在这个检查中包含 .json(或者任何非ts/js扩展)。

dxxyhpgq

dxxyhpgq2#

我注意到了这种行为,只是扩展名不正确(它在末尾添加了 .js 而不是留空或使用正确的 .ts )

VSCode版本: 1.33.1 (1.33.1)
tsconfig.json:

{
  "compilerOptions": {
    "allowJs": true,
    "allowSyntheticDefaultImports": true,
    "baseUrl": ".",
    "checkJs": false,
    "esModuleInterop": true,
    "isolatedModules": true,
    "jsx": "react",
    "lib": ["es2017"],
    "moduleResolution": "node",
    "noEmit": true,
    "noImplicitAny": false,
    "resolveJsonModule": true,
    "skipLibCheck": true,
    "target": "esnext"
  }
}
pvcm50d1

pvcm50d13#

我仍然可以在1.38.1版本上复现这个问题。

chhqkbe1

chhqkbe14#

我也可以在1.41.1版本中复现这个问题。

r7knjye2

r7knjye25#

这个问题的任何解决方案?

zzzyeukh

zzzyeukh6#

奇怪的是,最近在过去的一个月左右开始遇到这个问题——也许在上一次更新之后(当前版本为1.42.1)。

kdfy810k

kdfy810k7#

有人找到解决这个问题的方法了吗?

rt4zxlrg

rt4zxlrg8#

@tarjei "typescript.preferences.importModuleSpecifierEnding": "minimal" 的方法对我来说似乎可以正常工作,这种方式不会使用任何扩展。

相关问题