在打字稿中导入json

时间:2018-02-21 16:37:33

标签: javascript node.js typescript

我是typescript的新手。在我的项目中我们使用typescript2,在我的一个要求中我需要导入json文件。所以我创建了.d.ts文件如下

 test.d.ts
declare module "*.json" {
    const value: any;
    export default value;
}

我已将此定义包含在我的tsconfig.json中并导入我的ts文件,如下所示

  test.ts
//<refrence path="./test.json"/>
import * as data from './test.json';

当我构建我的代码时,我收到了以下错误

Cannot find module './test.json'

注意: - 我不想使用Requirejs

由于

3 个答案:

答案 0 :(得分:5)

使用 TypeScript 2.9。+ ,您只需导入类型安全和智能感知的JSON文件,如下所示:

import testJson from './test.json';
console.log(testJson.yourPropertyName);

确保将这些设置添加到tsconfig.json:

"resolveJsonModule": true,
"esModuleInterop": true,

答案 1 :(得分:2)

我使用.ts和变量中的json数据来处理它:

import { data } from './jsonData'; // jsonData.ts

jsonData.ts就是这样的:

export var data = {
  "key": "value",
  "key2": "value2"
}

答案 2 :(得分:0)

this great article之后,根据您使用的TypeScript版本,您可以遵循其他两个答案。

当您使用TypeScript 2+时,缺少它们的情况。在这种情况下,如果您有一个json文件,如下所示:

{
    "name": "testing"
}

您应在typings.d.ts文件中添加以下内容:

declare module "*.json" {
    const value: any;
    export default value;
}

然后按如下所示导入json文件:

import * as data from './example.json';

const word = (<any>data).name;

console.log(word); // output 'testing'