我用Recoil制作了一个原子,但我找不到在Typescript中表示通用原子的方法。
const atom = atom<T[]>({ // <- I get error
key: 'atom',
default: []
})
const value = useRecoilValue<number[]>(atom) // <- specify actual value here (not working now)
我怎样才能让它工作?
根据atom
函数的定义,atom
已经有了一个泛型类型参数,这应该可以工作:
const some = atom<string[]>({
key: 'some-key',
default: [] // now has `string[]` type
})
从useRecoilValue
的定义中,我们可以看到,该通用推断是自动的,您不需要指定它:
const value = useRecoilValue(some) // inferred type of `value` is `string[]`
您不应该在useRecoilValue
指定类型,因为atom已经有了这个信息