簡體   English   中英

TypeScript 中的動態對象鍵

[英]Dynamic object keys in TypeScript

在 TypeScript 中設置動態對象的類型時遇到問題,因為我創建的對象具有動態鍵,而三個不是

這是我定義對象類型的方式:

interface GraphReturns {
 [key: string]: {
    ‘%’: number,
    value: number,
   ‘%Acumulated’: number
  },
  total: number,
  ‘total_%’: number,
  date: string
}

我得到的錯誤:

  1. 'number' 類型的屬性 'total' 不能分配給 'string' 索引類型 '{ '%': number; 值:數字; '%累積':數字; }'
  2. 'number' 類型的屬性 ''total_%'' 不可分配給 'string' 索引類型 '{ '%': number; 值:數字; '%累積':數字; }'
  3. 'string' 類型的屬性 'date' 不能分配給 'string' 索引類型 '{ '%': number; 值:數字; '%累積':數字; }' 我怎樣才能解決這個問題? 謝謝!

我在這里只看到兩個解決方案。

這個似乎更“正確”,但我不確定你是否可以使用它

interface CallItSomehow {
    '%': number;
    value: number;
    '%Acumulated': number;
}

interface GraphReturns {
    total: number,
    'total_%': number,
    date: string
    other: Record<string, CallItSomehow>, // In this case you had to write information into another field
}

或者你可以做

interface GraphReturns {
    total: number,
    'total_%': number,
    date: string
    [key: string]: {
        '%': number,
        value: number,
        '%Acumulated': number
    } | string | number,
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM