使用TypeScript,如何扩展可以是多种类型之一的接口?

时间:2019-09-23 12:45:17

标签: typescript

type SkuItem = ChildSkuItem & {
    childSkus: ChildSkuItem[],
};

type SkuItemsErrSkuResponse = {
    errorCode: string;
    errorMessage: string;
}

export interface GetSkuItemsResponse extends Array<SkuItem> | SkuItemsErrSkuResponse {}

但是,这会导致错误:

An interface can only extend an identifier/qualified-name with optional type arguments.ts(2499)

我在做什么错?更重要的是,我该怎么做?

2 个答案:

答案 0 :(得分:1)

gcloud beta sql instances create gitlab-db --database-version=POSTGRES_9_6 --cpu 4 --memory 15 --storage-auto-increase --zone us-central1-a 可以扩展多个接口(即,将它们完全结合在一起),但是interface使其有点怪异,并且由于您希望它是一种类型,所以{{1 }}无效。

您可以改为使用Array

extends

Typescript Playground

答案 1 :(得分:1)

您不能扩展,必须使用交叉点类型:

export type GetSkuItemsResponse = (Array<SkuItem> | SkuItemsErrSkuResponse) & {
    ...
}

TypeScript Playground