Ich habe diesen Status definiert
const [userInfo, setUserInfo] = React.useState<UserInfo | undefined>()
Irgendwo in meinem useEffect versuche ich es basierend auf dem vorherigen Zustand festzulegen.
Also mach das
setUserInfo( (prevState) => { return { ...prevState, ...someRef.current } })
Aber es schlägt mit dem folgenden Fehler fehl
Type error: Argument of type '(prevState: any) => any' is not assignable to parameter of type 'UserInfo'. Type '(prevState: any) => any' is missing the following properties from type 'UserInfo': name, age, gender
Was noch seltsamer ist, ist, dass ich den Code aktualisiert habe, um zum vorherigen Zustand zurückzukehren. Im Grunde ist es das
setUserInfo((prevState) => return prevState)
Dieser Vorgang schlägt mit demselben Fehler fehl!
Type error: Argument of type '(prevState: any) => any' is not assignable to parameter of type 'UserInfo'. Type '(prevState: any) => any' is missing the following properties from type 'UserInfo': name, age, gender
Ich glaube ehrlich gesagt, dass das funktionieren wird. Ich erhalte den vorherigen Status und gebe ihn zurück, aber das wird nicht kompiliert.
Wenn ich die Prüfung deaktiviere und die App ausführe, funktioniert sie wie erwartet, es sieht also nach einem Typoskript-Problem aus.
Irgendwelche Ideen, wie man dieses Problem lösen kann?
您可以将返回值转换为 UserInfo。