我见过多个使用 Typescript 的 React 组件示例:
class Foo extends React.Component<IProps, IState> {}
当我们不使用 Props 或 State 时,似乎没有明确的约定。
人设这些类型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> {}
最好的方法是什么?
更新:
props:
void
不能使用(https://github.com/Microsoft/TypeScript/issues/15409和https://github.com/Microsoft/TypeScript/issues/15419),因为 props 对象被初始化为{}
解决方案
简单地做 -class Foo extends React.Component {}
因为 prop 和 state 被初始化为{}