CodeSky 代码之空

随手记录自己的学习过程

TypeScript 中 import JSON 的正确姿势

2017-07-17 23:08分类: JavaScript评论: 3

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

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

首先我使用了基本姿势

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

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

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

命名一个 typings.d.ts

1declare module "*.json" {
2    const value: any;
3    export default value;
4}
5

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

1import * as variable from './fooooooo.json'
2
3const data = (variable as any).data
4

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

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

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

参考:

评论 (2)

临水照影2017年10月19日 22:41

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

敖天羽2017年10月29日 20:44

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

lightningstrike2017年8月11日 01:00

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