使用模块声明导入 JSON 文件

Posted

技术标签:

【中文标题】使用模块声明导入 JSON 文件【英文标题】:Importing a JSON file by using module declaration 【发布时间】:2018-06-25 05:36:09 【问题描述】:

在我的 Ionic2 项目中,我使用以下语句导入了一个 JSON 文件:

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

我还在项目的根目录中创建了 typings.d.ts 文件,内容如下:

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

按照here 的建议。但这并没有按预期工作,仍然无法找到该模块。从本教程下载 sample project 并运行它可以正常工作。不过,除了我的文件位于/project/src/pages/page.ts 之外,我看不出这个项目和我自己的项目有什么区别。

【问题讨论】:

Importing json file in TypeScript的可能重复 【参考方案1】:

您可以尝试以下方法:

interface SomeJson 
    // ... 


const json: SomeJson = require("./data.json");

【讨论】:

如何使用require()?我安装了requirejs,但是功能还是不可用。 你应该不需要安装require。原生支持 require,只需确保您拥有最新版本的 TypeScript 之一。如果您使用的是 Webpack,它应该可以工作。 这很奇怪,一切都是最新的,但 Visual Studio 代码告诉我无法找到名称 require 能否将您的tsconfig.json 添加到问题中?

以上是关于使用模块声明导入 JSON 文件的主要内容,如果未能解决你的问题,请参考以下文章

使用本地 JSON 文件导入时找不到模块

在 ES 模块(Node.js)中导入 JSON 文件

package.json字段详解

通过“no-var-requires”ESLint 规则,导入没有声明文件的模块

如何声明一个模块来进行命名导入?

导入现有 .jsx 文件时“找不到模块的声明文件”