是否可以将一个类型的字段混入另一个类型?

时间:2019-04-12 13:30:02

标签: typescript

有没有办法做这样的事情?

type Details = {
  name: string
}

type Customer = {
  id: string,
  ...Details
}

因此客户实际上是这样的:

type Customer = {
  id: string,
  name: string
}

3 个答案:

答案 0 :(得分:4)

您可以使用intersection type

type Customer = Details & {
  id: string
}

从文档中(重点是我):

  

交叉点类型将多种类型组合为一种。这可以让你   将现有类型加在一起以得到具有所有   您需要的功能。

答案 1 :(得分:1)

可以完成,如发布的答案jonrsharpe所示。您还可以通过如下接口扩展类型:

export type Details = {
  name: string;
};

export interface Customer extends Details {
  id: string;
}

const customer: Customer = {
  name: 'name',
  id: 'id'
};

答案 2 :(得分:-1)

我最近遇到了这个问题,并且使用的方法略有不同:

type Details = {
  name: string
}

type Customer = {
  id: string,
  name: Details
}

这不是您要的内容,而是一种相交的方式。