Saya takrifkan status ini
const [userInfo, setUserInfo] = React.useState<UserInfo | undefined>()
Di suatu tempat dalam penggunaan sayaEffect saya cuba menetapkannya berdasarkan keadaan sebelumnya.
Jadi lakukan ini
setUserInfo( (prevState) => { return { ...prevState, ...someRef.current } })
Tetapi ia gagal dengan ralat berikut
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
Apa yang lebih pelik ialah saya mengemas kini kod untuk kembali ke keadaan sebelumnya. Secara asasnya begini
setUserInfo((prevState) => return prevState)
Operasi ini gagal dengan ralat yang sama!
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
Sejujurnya, saya fikir ini akan berkesan. Saya mendapat keadaan sebelumnya dan mengembalikannya, tetapi ini tidak dikompilasi.
Jika saya melumpuhkan semakan dan menjalankan apl ia berfungsi seperti yang diharapkan, jadi ini kelihatan seperti isu skrip taip.
Ada idea bagaimana untuk menyelesaikan masalah ini?
Anda boleh menukar nilai pulangan kepada UserInfo.