Возможно ли создать тип-защитник или что-то еще, что позволяет достичь той же цели, чтобы проверить, является ли переменная конкретным типом интерфейса в союзе типов?Проверьте, является ли переменная конкретным типом интерфейса в объединении типов.
interface Foo { a:string }
interface Bar { b:string }
(function() {
function doStuff(thing: Foo | Bar) {
if(typeof thing === 'Foo') {
console.log('Foo');
}
else if (typeof thing === 'Bar') {
console.log('Bar');
}
else {
console.log('unknown');
}
}
var thing: Foo = {a:'a'};
doStuff(thing);
})();
Таким образом, нет никакого способа, чтобы проверить, если переменная соответствует интерфейсу без проверки специфических свойств (например, «а» в нашем примере)? – myartsev
Это правильно –