我对TypeScript很陌生。也许我的问题很明显,但是我找不到任何解决方案。
我有一个像这样的config.json文件:
{
"api": {
"baseUrl": "http://localhost:9000/api",
"list": {
"itemsPerPage": 200
}
},
"map": {
"start": {
"position": [51.505, -0.09],
"zoom": 2
},
"leaflet": {
"minOpacity": 0.3,
"accessToken": "something"
}
}
}
我将其导入到一些module.tsx
import config from '../config.json';
const mapCenter: [number, number] = config.map.start.position;
json中的 position
必须被视为[number, number]
元组,因为我使用的某些库要求将其键入为此类。
但是不幸的是我得到一个错误:
TS2322:类型'number []'不能分配给类型'[number,number]'。 类型'number []'中缺少属性'0'。
如何正确转换类型?
我可以使用config.d.ts文件声明json的类型吗?怎么样?
谢谢。
答案 0 :(得分:0)
这是一个强制转换问题,只需将[number,number]
替换为number[]
const mapCenter: number[] = config.map.start.position;
OR
const mapCenter: Array<number> = config.map.start.position;
答案 1 :(得分:0)
由于打字稿中的元组是经过修饰的数组,因此您可以使用“ as”关键字将其强制转换为您的类型:
const mapCenter: [number, number] = config.map.start.position as [number, number];