ts中接口多继承和联合类型的用法有没有区别

export interface GoodsMenuState extends KState<InitData> {}

export type GoodsProps = PageWrapperProps<Reducers, Asyncs> & GoodsState & {

location: { pathname: string };

};

以上代码中声明的类型与一下声明方式有没有区别,新手入坑,求指教
interface GoodsProps extends PageWrapperProps<Reducers, Asyncs>, GoodsState {
location: { pathname: string };
}

疑问:接口多继承是否也可以实现&(联合类型)的效果

回答

第一,你这不叫联合类型(Union Types),联合类型是逻辑或的关系;你这是逻辑和关系,是交叉类型(Intersection Types)。

第二,你这个例子里确实可以,但语义上二者是有区别的。多继承遵循 OOP 的继承关系;而交叉类型是类似于 Object.assign 效果的。在某些情况下,只能用交叉类型、而不能用多继承,比如:

image.png

以上是 ts中接口多继承和联合类型的用法有没有区别 的全部内容, 来源链接: utcz.com/a/40430.html

回到顶部