创建TS阵列自定义类型?

时间:2020-09-27 06:55:00

标签: javascript typescript

是否可以执行类似的操作来定义自定义公司数组类型?

export interface Company {
  name: string;
}

export interface Companies: Array<Company> {

}

我似乎不喜欢公司的语法。

或者这根本就没有意义吗?

1 个答案:

答案 0 :(得分:1)

如果您只需要一系列公司,则可以使用以下任何一个公司:

type Companies = Company[]
type Companies = Array<Company>

或者,您甚至不需要定义类型别名,而只需使用Company[]Array<Company>

但是,如果要在数组上声明其他属性,则可以扩展Array<Company>

interface Companies extends Array<Company> {
  foo: string
  bar: number
}

要创建这样的对象,可以使用以下之一:

declare const normalArray: Company[]

const companies1: Companies = Object.assign(normalArray, {foo: '', bar: 0})

const companies2 = normalArray as Companies
companies2.foo = ''
companies2.bar = 0