Я ожидаю, что следующий код не будет компилироваться. Причина в том, что при присвоении person
и expert
значению people
константа person
удовлетворяет типу константы people
, которая должна быть типом Person
. Однако в expert
есть поле skills
, которое не существует для типа Person
.
Тем не менее, он компилируется.
interface Person {
name: string;
age?: number;
}
interface Developer {
name: string;
age?: number;
skills: string[];
}
const person: Person = {
name: 'john doe',
age: 20,
};
const expert: Developer = {
name: 'jane doe',
skills: ['javascript', 'react']
};
const people: Person[] = [ person, expert ];
console.log(people);