如何基于TypeScript接口的属性类型声明联合类型?
实现方案
先把你的接口正式定义出来:
interface TargetInterface { a: string; b: number; }
直接通过索引类型就能基于这个接口生成你要的联合类型:
type MyType = TargetInterface[keyof TargetInterface];
原理说明
keyof TargetInterface会提取出接口所有属性名的联合类型,也就是"a" | "b"- 用这个联合类型去索引原接口,就能拿到每个属性对应的类型,TypeScript会自动把它们合并成
string | number的联合类型,完全符合你的需求。
内容的提问来源于stack exchange,提问作者Dan.
相关产品推荐
相关产品推荐

