如何在 Typescript 中声明一个具有现有接口的所有字段以及其他字段的变量

How to declare a variable in Typescript that has all fields of existing interface plus others

比如我有接口

export Interface IPerson { name: string, age: number }

person: IPerson = { name: 'Mary', age: 20 };

我想声明如下:

superPerson 拥有 IPerson 的所有字段加上字段 score

superPerson: { score: number } extends IPerson = { name: 'Mary', age: 20, score: 170}

无需单独定义新的接口或类型。

这可以通过交集类型来完成:

superPerson: IPerson & { score: number } = { name: 'Mary', age: 20, score: 170 }

请注意,如果您在单独的一行上执行此操作,它几乎是相同的,只是您有一个类型的名称,这可以使弱小的人更容易理解,并允许重用该类型。

type SuperPerson = IPerson & { score: number };
superPerson: SuperPerson = { name: 'Mary', age: 20, score: 170};