vscode中json转java类_VSCode打字稿导入json文件突出显示问题

在VSCode中使用typescript导入json文件时遇到高亮显示问题。通过更新tsconfig.json,包括`resolveJsonModule`和`esModuleInterop`设置为true,并引入`json-d-ts`包,解决了部分问题。然而,当在不同层级的模块中导入同一json文件时,VSCode仍报错。问题出现在相对路径导入时,VSCode无法正确解析。通过查看`tsc --traceResolution`输出,确认VSCode尝试查找多种文件类型但未成功。解决方案可能需要进一步调整配置。
摘要由CSDN通过智能技术生成

在使用VSCode时使用typescript中的import语句导入json文件时,我有一些奇怪的行为 . 请注意,这不是打字稿本身只是VSCode突出显示的问题 .

我编辑了我的tsconfig.json,在我的编译器选项中添加了值为true的resolveJsonModule和esModuleInterop,以便在typescript中导入json .

此外,我已将此包添加到我的项目https://www.npmjs.com/package/json-d-ts,并将一个typeRoots属性添加到tsconfig.json,其值为["node_modules/json-d-ts"]

我在一个模块(在src / firebaseApp.ts中找到)中导入了json文件(在src / config / firebaseServiceKey.json中找到),该模块位于父目录中,因此导入如下所示:

import databaseUrl from "./config/firebaseDatabaseURL.json";

VSCode不会抱怨此导入:

629e9905-7a02-46df-b038-5ec04f95c0b6.png

但是我有另一个模块在项目目录中的不同级别导入相同的文件,该模块位于test / utils.ts,其导入如下所示:

import serviceKey from "../src/config/firebaseServiceKey.json";

这次VSCode似乎不喜欢相对导入并突出显示模块缺失:

98c4e05c-2fb7-450a-a3c2-05c5b7fff3c7.png

任何想法如何修复配置VSCode来解决这个问题?

以下是运行tsc --traceResolution结果的相关部分:

======== Resolving module '../src/config/firebaseServiceKey.json' from '/home/jty/April2018/vs-server/test/utils.ts'. ========

Explicitly specified module resolution kind: 'NodeJs'.

Loading module as file / folder, candidate module location '/home/jty/April2018/vs-server/src/config/firebaseServiceKey.json', target file type 'TypeScript'.

File '/home/jty/April2018/vs-server/src/config/firebaseServiceKey.json.ts' does not exist.

File '/home/jty/April2018/vs-server/src/config/firebaseServiceKey.json.tsx' does not exist.

File '/home/jty/April2018/vs-server/src/config/firebaseServiceKey.json.d.ts' does not exist.

Directory '/home/jty/April2018/vs-server/src/config/firebaseServiceKey.json' does not exist, skipping all lookups in it.

Loading module as file / folder, candidate module location '/home/jty/April2018/vs-server/src/config/firebaseServiceKey.json', target file type 'JavaScript'.

File '/home/jty/April2018/vs-server/src/config/firebaseServiceKey.json.js' does not exist.

File '/home/jty/April2018/vs-server/src/config/firebaseServiceKey.json.jsx' does not exist.

Directory '/home/jty/April2018/vs-server/src/config/firebaseServiceKey.json' does not exist, skipping all lookups in it.

Loading module as file / folder, candidate module location '/home/jty/April2018/vs-server/src/config/firebaseServiceKey.json', target file type 'Json'.

File '/home/jty/April2018/vs-server/src/config/firebaseServiceKey.json' exist - use it as a name resolution result.

======== Module name '../src/config/firebaseServiceKey.json' was successfully resolved to '/home/jty/April2018/vs-server/src/config/firebaseServiceKey.json'. ========

这是我的tsconfig.json

{

"compilerOptions": {

"module": "commonjs",

"resolveJsonModule": true,

"esModuleInterop": true,

"allowSyntheticDefaultImports": true,

"target": "es6",

"noImplicitAny": true,

"moduleResolution": "node",

"sourceMap": true,

"outDir": "dist",

"baseUrl": ".",

"paths": {

"*": [

"node_modules/*",

"src/types/*"

]

}

},

"include": [

"src/**/*"

],

"typeRoots": [

"node_modules/json-d-ts"

]

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值