我正在尝试转换已正常运行的React应用程序,因此它将遵循TypeScript严格的规则,并且会被上下文API卡住。普通的使用方法如下:
// context type and producer are defined in one place for the whole project
import GlobalContext from '../context/GlobalContext';
class MyComponent extends React.Component {
public context: React.ContextType<typeof GlobalContext>;
// other component logic
}
MyComponent.contextType = GlobalContext;
但是,在严格的类初始化中,TypeScript显示了一个错误,告知context
属性未在构造函数中初始化-实际上并未初始化,因为它将由React初始化。
现在,我可以使用定值分配断言来“修复”此问题:
public context!: React.ContextType<typeof GlobalContext>;
但是还有一些惯用的解决方案吗?