当前位置: 首页 > 面试题库 >

导入json文件时出现Typescript编译器错误

霍伟彦
2023-03-14
问题内容

所以代码很简单:

Calls.json

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

file.ts

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

生成的javascript是正确的,并且在运行节点js服务器时,控制台日志json.SERVER会按需打印’{请求:{一个:‘1’}}’。

但是,打字稿编译器(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需要进行定义。



 类似资料:
  • 问题内容: 我有一个如下文件: 我正在尝试将其导入文件。为此,我将其添加到类型定义中: 我正在这样导入。 在文件中,我将颜色用作。但是我得到一个错误: 属性’primaryMain’在类型’typeof“ * .json”上不存在 问题答案: 导入表单和模块声明需要就模块的形状,导出的内容达成一致。 编写时(自TypeScript 2.9导入JSON时,针对兼容模块格式的一种次佳实践, 请参见no

  • 问题内容: 我正在使用Angular Maps构建地图应用程序,并希望导入JSON文件作为定义位置的标记列表。我希望将此JSON文件用作app.component.ts中的marker []数组。而不是在TypeScript文件中定义标记的硬编码数组。 导入此JSON文件以在我的项目中使用的最佳过程是什么?任何方向都非常感谢! 问题答案: 直到最近的打字稿更新之前,Aonepathan的单行代码都

  • 所以我看到它找不到promise和地图。

  • 我是python的初学者,我有以下(令人尴尬的)问题: 我正在尝试使用 xlrd 导入 excel 文件,但我有“文件未找到错误”。 有人能帮助新手吗? 非常感谢,马特奥 -导入xlrd #加载数据文件路径=(r"C:\用户\MCECCHI\桌面\oil_exxon.xls") WB = xlrd . open _ workbook(path)sheet = WB . sheet _ by _ i

  • 我尝试使用transcrypt将python文件转换为JS,使用命令。在我的python脚本中有一个对JSON的导入: 将目标代码保存在:/home/sarwagya/desktop/hello/target/org.transcrypt.runtime.js将目标代码保存在:/home/sarwagya/desktop/hello/target/re.translate.js将目标代码保存在:/

  • 我正在将我的一些JS代码转换为typescript,当使用无服务器框架在AWS上部署到一个lambda并运行它时,我得到以下错误。起初,我认为我的进口是不好的,但看起来一切都是预期的。 {“errortype”:“runtime.importmoduleerror”,“errormessage”:“error:找不到模块'tslib'\n需要堆栈:\n-/var/task/handlers/cre