Корпус 1
let d: { id: number };
d = { id: 2, name: 'archer' }; // compilation error
Корпус 2
let e: { id: number };
let e1 = { id: 2, name: 'archer' };
e = e1; // okay
Заключение
Это печатает, что машинопись не проверяет совместимость при назначенииодна переменная к другой, но это происходит при присваивании и объектном литерале переменной.
Кроме того, я запутался в case 2 , поскольку согласно handbook средство проверки типов выполняет проверку типов только на основе формы.