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

问题描述

例如我有接口

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',score: 170};

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...