Существуют следующие типы:
type TypeA = {
desc: string;
name: string;
}
type TypeB = {
desc: string;
name: string;
age: number;
}
type TypeC = {
desc: string;
name: string;
age: number;
gender: string;
}
type TypeAll = TypeA | TypeB | TypeC;
Я искал решение и обнаружил, что Typeguards - самый элегантный способ проверки пользовательских типов. НО во всех примерах они фильтруют явное свойство этого типа. Как:
isTypeC(type: TypeAll):type is TypeC {
return type.gender !== undefined
}
Как написать это для TypeA или TypeB? Кроме того, может случиться так, что типы будут меняться со временем (не во время выполнения!), И для этого необходимо решение, которое не проверяет явные свойства. Это возможно?