javascript - Typescript:無法將 JSON 的值轉換為 [number, number] 元組
我對 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 類型嗎?怎麼做?
提前感謝你。
答案#1
由於 TypeScript 中的元組是被美化的陣列,你可以使用 "as" 關鍵字將其轉換為你的類型:
const mapCenter: [number, number] = config.map.start.position as [number, number];
