Доки по разработке
This project is maintained by teniryte
Принципы
contactType) позволяет TypeScript автоматически сужать тип внутри switch.switch.Пример
interface Person {
firstName: string;
surname: string;
contactType: 'person';
}
interface Organisation {
name: string;
contactType: 'organisation';
}
type Contact = Person | Organisation;
function sayHello(contact: Contact) {
switch (contact.contactType) {
case 'person':
console.log('Hello ' + contact.firstName);
break;
case 'organisation':
console.log('Hello ' + contact.name);
break;
}
}
Практика
default или обеспечьте исчерпывающий switch, чтобы компилятор предупредил о пропущенных вариантах.isPerson(contact)).sayHello4, но внутри использовалось sayHello.