TypeScript 中 import JSON 的正确姿势
最近 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)
请教一下有在react + redux 中配合typescript的经历么,项目开发中大量any你是怎么解决的?
自己写类型 如果懒得写 那就只能用 any 了……
我觉得require引入还是好些, json的type没啥必要