我将typescript 2.1
与JSX
一起使用,我尝试将Partial
映射类型用于反应组件的扩展接口,以及具有所需属性的接口的可选属性。
这是具有所需属性的界面:
interface ActionsCreators {
A: string;
B: string;
};
这是我想要扩展的界面:
interface Props extends React.Props<any> {
C: string;
};
这是映射类型:
type ActionsCreatorsPartial = Partial<ActionsCreators>;
给出了这个结果:
type ActionsCreatorsPartial = {
A?: string;
B?: string;
}
这是我尝试做的事情:
interface Props extends React.Props<any>, ActionsCreatorsPartial {
C: string;
};
但我看到编译错误:“接口可能只扩展一个类或另一个接口”如何将接口Props
与ActionsCreatorsPartial
类型连接?
答案 0 :(得分:2)
错误消息是正确的,接口只能扩展其他接口或类的接口,类同样只能实现接口或从另一个类接受接口。
有一个允许类实现类型别名的已批准suggestion,我想如果实现了接口,那么接口扩展类型别名将属于范围。
不幸的是,截至今天,我并不认为有任何方法可以将映射类型合并到界面中。