TypeScript 中 import JSON 的正确姿势

最近 TypeScript 中毒,想想我一个弱类型出身的人,怎么就喜欢上了类型约束……当然这不是重点,重点可能还是 JS 没有接口,我没法靠 class 语法糖写的非常 OO……

关于 TS 的安利部分结束,今天我想说的其实是在 ts 中如何正确的 import json 格式。

首先我使用了基本姿势

import * as variable from './fooooooo.json'


结果发现他提示我并没有这个 module(Cannot find module),咋回事呀大佬,明明 JavaScript 中我可以正常使用。

查了一下,找到了一个方法:

命名一个 typings.d.ts

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

接下来理论上你就可以愉快的使用了,比如

import * as variable from './fooooooo.json'

const data = (variable as any).data

当然在使用中由于我不小心写错了 config 文件的文件名所以没有生效于是……我又去找了别的方法。

比如可以使用 @types/node 加上 require 引入,如果你的服务中禁用 any,这也是一个比较好的方法。

甚至你可以手写读取文件,不过感觉上去还是比较智障……还是觉得前面两种方法更优雅一点

参考:

标签: 知识, 代码段, typescript

已有 3 条评论

  1. lightningstrike

    我觉得require引入还是好些, json的type没啥必要

  2. 请教一下有在react + redux 中配合typescript的经历么,项目开发中大量any你是怎么解决的?

    1. 自己写类型 如果懒得写 那就只能用 any 了……

添加新评论