请教关于 TypeScript 类型索引 & 推断的一个问题
資深大佬 : vsomeone 2
目前我需要写一个类型,现在写的定义是:
interface IState { something: number; another: string; } type HandlerFactory = (key: keyof IState) => (value: IState[key]) => void;
也就是说,HandlerFactory 指的是一类函数,其唯一参数是 IState 对象的一个 key,返回一个新的函数,此函数的唯一参数类型应当对应 IState[key] 的类型(例如,handlerFactory('something') 生成一个函数,此函数的签名为 (value: number) => void )。
目前这样写,TypeScript 会报错 key 是一个值,此处把它作为类型来使用('key' refers to a value, but is being used as a type here. Did you mean 'typeof key'?ts(2749))。我不太理解的是,为什么我已经限定了 key 的范围( keyof IState ),TS 仍然会有这样的报错。
希望大家帮忙解答~
大佬有話說 (4)