gpt4 book ai didi

javascript - 导入 json 文件时的 Typescript 编译器错误

转载 作者:IT老高 更新时间:2023-10-28 12:45:15 24 4
gpt4 key购买 nike

所以代码很简单:

calls.json

{"SERVER":{
"requests":{
"one":"1"
}
} }

文件.ts

import json = require('../static/calls.json');
console.log(json.SERVER);

生成的 javascript 是正确的,并且在运行 Node js 服务器时,控制台日志 json.SERVER 会打印 '{ requests: { one: '1' } }'。

然而, typescript 编译器(commonjs)不知何故并不特别喜欢这种情况并抛出:“找不到模块'../static/calls.json'”。

当然我试过写一个 .d.ts 文件,像这样:

declare module '../static/calls.json'{
var exp:any;
export = exp;
}

这显然会抛出:“环境模块声明无法指定相对模块名称”。

我也尝试了不同的变体,例如:

declare module 'calls.json' {
import * as json from '/private/static/calls.json';
export = json;
}

然后要求:

import json = require('calls.json');

没有一个能正常工作并且有自己的小编译器错误:)

我想使用外部 .json 文件,因为我使用 commonjs 服务器端和 amd 客户端,并且我想要一个文件来加载常量。

最佳答案

使用 var 代替 import

var json = require('./calls.json');

您正在加载 JSON 文件,而不是模块,因此在这种情况下不应使用 import。当使用 var 时,require() 再次被视为普通函数。

如果您使用的是 Node.js 定义,那么一切都应该正常工作,否则需要定义 require

关于javascript - 导入 json 文件时的 Typescript 编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32950966/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com