interface A
{
a():string
}
function fooA(a : A)
{
console.log(a.a());
}
class Aimpl
{
a(): string {
return "AB";
}
}
fooA(new Aimpl);
Совместимость типов в TypeScript основывается на структурной типизации. Структурная типизация — это способ выявления отношений типов на основании исключительно состава их членов. Этот подход отличается от номинативной типизации. Посмотрим на следующий код:
interface Named { name: string; } class Person { name: string; } let p: Named; // Все подходит, поскольку используется структурная система типов p = new Person();