старте - структурная типизация:
interface A {
a: string;
b: number;
}
interface B {
a?: string;
}
function f(x: B) {
return x.a;
}
const a: A = { a: "", b: 8 };
f(a); // no compile error
Второй - Advanced Types
У меня основной gotcha был в том, что поля класса не инициализируются по умолчанию. Написал class A { x: number; } - а там не 0, а undefined
Обсуждают сегодня