为什么我们可以将具有更多属性的接口分配给具有更少属性的另一个接口?

时间:2020-06-17 06:36:18

标签: typescript

我希望以下代码无法编译。原因是当将personexpert分配给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);

0 个答案:

没有答案