reactjs - Idiomatisk användning av React Context API med TypeScripts strikta initialisering
Jag försöker konvertera en redan fungerande React-applikation, så att den följer TypeScripts strikta regler, och fastnade lite med Context API. Det vanliga sättet att använda det är som följer:
// 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;
Men med strikt klassinitialisering visar TypeScript ett fel och säger att context-egenskapen inte är initialiserad i konstruktorn - och det är den verkligen inte, eftersom den kommer att initialiseras av React.
För tillfället kan jag använda den bestämda tilldelningspåståendet för att "fixa" detta:
public context!: React.ContextType<typeof GlobalContext>;
Men finns det någon mer idiomatisk lösning?