使用TypeScript对redux钩子进行反应

使用TypeScript对redux钩子进行反应,typescript,generics,redux,react-redux,Typescript,Generics,Redux,React Redux,我正在用TypeScript使用react reduxhookuseSelector。是否支持静态类型?现在我必须使用作为关键字进行转换 interface User { age: number } const selectUser = (state): User => state.user.detail const MyComponent = () => { const user1 = useSelector(selectUser) user1.age = '

我正在用TypeScript使用
react redux
hook
useSelector
。是否支持静态类型?现在我必须使用
作为
关键字进行转换

interface User { age: number }

const selectUser = (state): User => state.user.detail

const MyComponent = () => {

    const user1 = useSelector(selectUser)
    user1.age = 'This is not number.' // No warning or error.

    const user2 = useSelector<User>(selectUser)
    user2.age = 'This is not number.' // No warning or error.

    const user3 = useSelector(selectUser) as User
    user3.age = 'This is not number.' // TS2339 error, but with casting.

}
界面用户{age:number}
const selectUser=(state):User=>state.User.detail
常量MyComponent=()=>{
const user1=useSelector(selectUser)
user1.age='这不是数字。//没有警告或错误。
const user2=useSelector(selectUser)
user2.age='这不是数字。//没有警告或错误。
const user3=useSelector(selectUser)作为用户
user3.age='这不是数字。//TS2339错误,但带有强制转换。
}

useSelector
有两个类型参数
,第二个参数是所选值的类型。所以这是可行的:

const user = useSelector<TState, User>(selectUser)
const user=useSelector(selectUser)

记住react redux挂钩仍处于alpha阶段。什么是
TState
?TState应该是整个商店的状态类型。