如何定义导入的 json 的类型?例如
{
"things": "foo"
}
Run Code Online (Sandbox Code Playgroud)
interface Data {
things: String,
another?: String
}
Run Code Online (Sandbox Code Playgroud)
import data from './data.json' // Should have type Data
console.log(data.things)
console.log(data.another) // Should be allowed but undefined
Run Code Online (Sandbox Code Playgroud)
该resolveJsonModule选项将自动为导入的 JSON 生成类型,但它是不完整的,因为 JSON 可能不包含数据的所有可能字段。
我自己如何定义类型?
g2j*_*ose 22
我在这里可以想到3个主要方法:
require与类型断言一起使用,如下所示:const data: Data = require('./data.json')
Run Code Online (Sandbox Code Playgroud)
import,但使用附加变量(类型化),如下所示:import untypedData from './data.json'
const data: Data = untypedData
Run Code Online (Sandbox Code Playgroud)
typeRoots您的部分,tsconfig.json如下所示:// File data.d.ts
declare module "data.json" {
things: String,
another?: String
}
Run Code Online (Sandbox Code Playgroud)
// File tsconfig.json
{
...
"typeRoots": [
"/*path to data.d.ts*/"
]
}
Run Code Online (Sandbox Code Playgroud)
这将使您import能够正确输入导入的项目
| 归档时间: |
|
| 查看次数: |
20762 次 |
| 最近记录: |