Следующий код вызовет ошибку: Невозможно вызвать выражение, тип которого не имеет сигнатуры вызова.Значения типа соединения, переданные методу, не могут быть вызваны
Если интерфейсы были одинаковыми (оба содержат «a», например), все работает нормально. Почему?
interface Foo { a:string }
interface Bar { b:string }
var stuff: Foo[] | Bar[];
function doStuff(thing: Foo | Bar) {
var index = stuff.indexOf(thing);
}
Должен ли материал быть [массив (Foos или Bars)] вместо [(массив Foos) или (массив баров)]? (Я не знаком с машинописными текстами, поэтому, возможно, я неправильно читаю подпись типа) – axblount
Действительно, вы правы. Не стесняйтесь публиковать его в качестве ответа, и я буду отмечать его как таковой. – myartsev