пользовательские типы?
type Теплое = { греться(): void; катать(): void };
type Мягкое = { лежать(): void };
type ТоЛиТеплоеТоЛиМягкое = Теплое | Мягкое;
type ТеплоМягкое = Теплое & Мягкое;
function делатьЧтото(x: ТеплоМягкое) {
x.греться();
x.лежать();
x.катать();
}
function isТеплое(x: any): x is Теплое {
return x && typeof x.греться === 'function' && typeof x.катать === 'function';
}
function делатьЧтото2(x: ТоЛиТеплоеТоЛиМягкое) {
if (isТеплое(x)) {
x.греться();
x.катать(); // теперь здесь можно использовать катать()
} else {
x.лежать();
}
}
Это 1С?
это 1Script
хотел сделать всем больно
да, можно взять классы вместо типов и использовать instanceof
Обсуждают сегодня