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类型