相关疑难解决方法(0)

如何避免使用 Typescript 在 React 构造函数中重新声明 props 类型

假设我有一个这样的课程:

class PeopleByTag extends React.Component<RouteComponentProps<{ tag: string }>
Run Code Online (Sandbox Code Playgroud)

我需要在我的构造函数中做一些事情,在这个例子中获取数据,但要做到这一点,我需要声明一个 props 参数,但如果我不指定类型,它将变成任何类型:

constructor(props) {
    super(props); // props is any
    this.loadData();
}
Run Code Online (Sandbox Code Playgroud)

另一方面,如果我重新声明类型,代码会变得非常难看:

constructor(props: Readonly<{
    children?: React.ReactNode;
}> & Readonly<RouteComponentProps<{
    tag: string;
}, StaticContext, any>>) {
    super(props);
    this.loadData();
}
Run Code Online (Sandbox Code Playgroud)

有没有办法从类扩展中自动推断 props 类型,同时还可以编写构造函数?

我也不想使用已弃用的生命周期挂钩(即 ComponentWillMount)。

typescript reactjs

6
推荐指数
1
解决办法
2660
查看次数

标签 统计

reactjs ×1

typescript ×1