Ох уж эти частные и общие случаи...то что по факту тип AB - сужение типа А, забавно. Визуально он выглядит шире ))
теперь хотя бы есть серьёзный аргумент в пользу стрелок, если кто спросит.)ага, тоже теперь только форму "f: (p: A) => void" буду юзать. Причем этот момент в доке прописан, см. второй ответ, Стас нашел.
interface Int1 {
f(p: string | number): void
}
class Class1 implements Int1 {
f(p: number): void { console.log(p) }
}
var o: Int1 = new Class1();
o.f('qqq')
Object - это функция от одного аргумента, что и символизирует Object.length === 1