我有一个简单的问题:在TypeScript中是否可以获取联合类型的某个部分的类型?
例如,您经常可以像这样使用查找类型:
interface Person {
name: string;
}
type Name = Person['name']
现在,我假设使用类似这样的联合是不可能的:
type Entity =
{ __type: 'Company', name: string }
| { __type: 'Employee', firstName: string };
因此,有没有方法可以获取联合的一部分?类似这样:
type Company = DoTheMagic<Entity, { __type: 'Employee' }>
const company: Company = ...;
console.log(company.name) // OK
console.log(company.firstName) // Compile error