使用TypeScript对redux钩子进行反应
我正在用TypeScript使用使用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 = '
react redux
hookuseSelector
。是否支持静态类型?现在我必须使用作为
关键字进行转换
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应该是整个商店的状态类型。