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)我做错了什么?更重要的是,我该如何做好呢?
发布于 2019-09-23 21:00:01
interface可以扩展多个接口(即将它们完全组合在一起),但是Array让它变得有点奇怪,因为您希望它是一种类型或另一种类型,extends将无法工作。
您可以使用type来实现这一点。
type ChildSkuItem = {};
type SkuItem = ChildSkuItem & {
childSkus: ChildSkuItem[],
};
type SkuItemsErrSkuResponse = {
errorCode: string;
errorMessage: string;
}
export type GetSkuItemsResponse = SkuItem[] | SkuItemsErrSkuResponse;
let x: GetSkuItemsResponse = { errorCode: '', errorMessage: '' };
let xx: GetSkuItemsResponse = [];发布于 2019-09-23 21:00:45
你不能扩展,你必须使用交叉点类型:
export type GetSkuItemsResponse = (Array<SkuItem> | SkuItemsErrSkuResponse) & {
...
}https://stackoverflow.com/questions/58062771
复制相似问题