簡體   English   中英

如何定義 object 的類型,其屬性將從 TypeScript 中的數組中獲取

[英]How to define type of an object whose properties are going to be fetched from an array in TypeScript

如何定義 object 的類型,其屬性將從 TypeScript 中的數組中獲取。

在以下示例中,如何定義lookUpMap object 的類型?

const arr1 = ["a", "b", "c", "d"];
const arr2 = ["x", "y", "b"];

class Arr {
    
    private lookUpMap = {}
    
    constructor(private arr1: string[], private arr2: string[]){}    
    
    linearCompare(){
        for(let i of this.arr1){
            this.lookUpMap[i] = true
        }
        
        for(let i of this.arr2){
            if(this.lookUpMap[i]){
                return console.log(true);
            }
        }
        return console.log(false);
    }
}

const arrComp = new Arr(arr1, arr2);
arrComp.linearCompare()

謝謝

對於lookupMap ,我能想到的最直接的類型是類似於字典的object,其屬性類型為true | undefined 字符串索引簽名 true | undefined

  private lookUpMap: { [k: string]: true | undefined } = {}

這將允許您將true寫入任何字符串值的鍵,如this.lookUpMap[i] = true ,並了解當您從字符串值的鍵讀取時,結果將為trueundefined ,如if (this.lookupMap[i]) {...}

請注意,這與您的密鑰來自 arrays 的事實無關; lookupMap將允許您使用任何string對其進行索引。

Playground 代碼鏈接

暫無
暫無

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

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