TypeScript stringler için kısıtlama olarak anahtarları kullanır
Aşağıdaki arabirime sahibim:
interface Address {
street: string
town: string
country: string
}
Bir işlevin üç dizeden biri olması gereken bir anahtar parametresini kabul etmesini istiyorum:
function useKey(key: "street" | "town" | "country") {
}
Anahtar parametre için türü arayüzden bir şekilde oluşturabilir miyim?
Cevap #1
Typescript'in bu tam spesifik durum için keyof tür operatörü vardır:
function useKey(key: keyof Address ) {
}
Bu, bir birleşimdeki bir türün tüm genel anahtarlarını size verecektir.
Alan türüne bile ulaşmak için tür sorgularını kullanabilirsiniz:
function getValue<K extends keyof Address>(key: K): Address[K]{
//...
}
Cevap #2
keyof operatörünü kullanabilirsiniz:
type AddressKey = keyof Address
