例如下面的型別
請問我要怎麼得到型別為string的key
或著我要怎麼把型別為string的東西提取出來產生另一個object型別?
拜託各位指點,謝謝
type Tfoo = {
a: string
b: string
c: string
d: boolean
e: boolean
f: number
g: {
h: string
i: number
}
}
檢查型別就可以了
let data: Tfoo = {...};
let newData = {};
for(let key in data) {
if(typeof data[key] === 'string') {
newData[key] = data[key];
}
}
有個很難用的方法,但filtering特定型別是可以的:
type UserProps {
username: string
password: string
isAuth?: boolean //這裡必須加?是痛點不然會噴錯
}
type StringUserProps = {
[propName: string]:string
}
let isOk:UserProps&StringUserProps={
username:"jaja",
password:"sss",
}
你甚至可以把你要filtering的object的key全加?再用交集去提取特定型別的key
好處是可以吃到IDE的參數提示但是不會噴錯
或是乾脆把不同的型別分開寫在用聯集去搞也行