如何在 Typescript 中导入 JSON5 文件(就像常规 JSON 一样)?

How to import a JSON5 file (as one can regular JSON) in Typescript?

我想以相同的方式将 JSON5 文件导入 Javascript 对象 [可以导入 JSON 文件](从 '../ config.json').

悬停时显示这条消息,但它很明显

Cannot find module '../conf/config.json5' or its corresponding type declarations.ts(2307)

我有 2 个与上述主要问题相关的附带问题:

  1. 我会得到 .json5 中的内容的智能感知吗,就像常规 json
  2. 它是否像与 require() 一起工作一样工作?我必须使用 import() 而不是常规导入吗?

您将需要软件包:json5

我们可以使用以下两种方法之一:

一:(目标模块系统是CommonJS)需要它

按照 README,我们注册 json5:

import "json5/lib/register";

然后就可以使用require导入了:

const config = require("../config/config.json5");

二:读取文件然后使用json5解析:

import json5 from "json5";
import { readFile } from "fs/promises";

(async () => {
    const text = await fs.readFile("./path/to/config.json5"); // path to config.json5 from entry point

    const config = json5.parse(text);
})();

您还可以使用提供的 CLI 将 json5 个文件转换为您可以使用的常规 json。

创建者更新了 json5 wiki

Wiki

您需要创建一个扩展名为 .d.ts 的额外文件以支持智能感知。