React + Typescript:无状态/无道具的React组件的类型
我看过使用Typescript的React组件的多个示例:
class Foo extends React.Component<IProps, IState> {}
当我们既不使用道具也不使用国家时,似乎没有明确的约定。
人设这些类型any
,null
,undefined
,{}
, ,etc.This就是我迄今为止看到:void
class Foo extends React.Component<null, null> {}
class Foo extends React.Component<any, any> {}
class Foo extends React.Component<{}, {}> {}
class Foo extends React.Component<undefined, undefined> {}
class Foo extends React.Component<void, void> {}
class Foo extends React.Component<object, object> {}
最好的方法是什么?
void
使用{}
只需做- class Foo extends React.Component {}
初始化prop和state即可{}
回答:
来自https://github.com/DefinitelyTyped/DefinitelyTyped/blob/15b7bac31972fbc081028937dfb1487507ca5fc9/types/react/index.d.ts#L199-L200
interface Component<P = {}, S = {}> extends ComponentLifecycle<P, S> { }
道具和状态被初始化为{}
,因此对于没有状态或道具的组件,我们可以简单地执行以下操作:
class Foo extends React.Component {}
以上是 React + Typescript:无状态/无道具的React组件的类型 的全部内容, 来源链接: utcz.com/qa/417027.html