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

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐