记录下 typescript 使用 typeof 和 keyof 将一个对象所有的key定义为一个类型
typeofconst obj = {name: '测试',id: 1,children: {name: '测试-子',id: 2}}// 定义类型type ObjType = typeof obj// 这个时候的 ObjType 的类型为 {name: string, id: number, children: {name: string, id: number}}keyofinterface
·
typeof
const obj = {
name: '测试',
id: 1,
children: {
name: '测试-子',
id: 2
}
}
// 定义类型
type ObjType = typeof obj
// 这个时候的 ObjType 的类型为 {name: string, id: number, children: {name: string, id: number}}
keyof
interface Type1 {
name: string
id: number
}
type Type2 = keyof Type1
// 这个时候的 Type2 的的值就为 'name' | 'id'
将keyof 和 typeof 组合使用
type ObjType = {
[key in keyof typeof obj]: typeof obj[key]
}
// 这样就可以得到一个key为 obj 所有key的类型了。value为key对应的value类型
更多推荐
已为社区贡献1条内容
所有评论(0)