【发布时间】:2021-03-04 23:02:17
【问题描述】:
假设我有以下类型:
type TMyType = {
a: string;
b: number;
c: number;
d?: SpecialTypeA | SpecialTypeB | SpecialTypeC;
}
如何告诉 typescript 在我的 (React) 子组件中我知道 d 是哪种类型?
我正在寻找类似data={data} as TMyType <SpecialTypeB>.
如果这是不可能的,那么最好和最容易理解的解决方案是什么,因为我们团队中的很多人都是使用 typescript 的新手
解决方案按照 AKX 建议:
type TMyType<T extends SpecialTypeA | SpecialTypeB | SpecialTypeC> = {
a: string;
b: number;
c: number;
d?: T;
}
对于我的反应父组件:
<ChildComponent data = {data as TMyType<SpecialTypeA>}/>
在子组件内部
interface IProps {
data: TMyType<SpecialTypeA>
}
【问题讨论】:
-
this 适合你吗?你需要留下
TMyType还是可以修改它?
标签: reactjs typescript