说我有这个JSON文件:
{
"foo": 1,
"bar": true,
"baz": "yes"
}
有没有办法导入该文件并使用TypeScript进行静态输入?
使用普通的Node.js,我们这样做:
const json = require('./file.json');
但是对于TS,有没有办法:
import json = require('./file.json');
有没有办法像这样得到静态输入?它应该很简单,对吧?
IMO,你应该能够做到
typeof 'path/to/json/file.json'
所以那将是:
export type MyInterface = typeof 'path/to/json/file.json'
这会给你一个类型。
答案 0 :(得分:2)
您基本上可以使用标准Node.js,但使用interface
并将其附加到您require
的变量中。
interface File {
foo: number
bar: boolean
baz: string
}
const jsonFile: File = require('./file.json')
如果从文件读取和解析的数据不符合接口,TS应该抛出错误。
目前没有动态分析未读JSON文件的方法来获取它的类型。