【发布时间】:2021-04-22 19:10:32
【问题描述】:
如何定义导入的 json 的类型?例如
{
"things": "foo"
}
interface Data {
things: String,
another?: String
}
import data from './data.json' // Should have type Data
console.log(data.things)
console.log(data.another) // Should be allowed but undefined
resolveJsonModule 选项将自动为导入的 JSON 生成类型,但它不完整,因为 JSON 可能不包含数据的所有可能字段。
我如何自己定义类型?
【问题讨论】:
-
能否详细说明不够宽松?
-
您可以使用路径映射为该 JSON 指定不同的类型
-
@AluanHaddad 路径映射有什么帮助?
-
好吧,你可以创建一个像
./data.json.d.ts这样包含declare const data: Data; export default data;的文件,然后你可以设置一个路径条目"*/data.json": ["data.json"],它适用于像import data from "app/data.json"这样的非相对导入。另一方面,是否需要相对,您可以跳过路径映射,只需将data.json.d.ts文件放在您的data.jsonJSON 文件旁边
标签: typescript