TypeScript
版本要求
Jotai 使用 TypeScript 3.8+ 语法。 如果您使用的是 3.7.5 或更低版本,请升级您的 TypeScript 版本。
Jotai 严重依赖类型推断,需要启用 strictNullChecks
。 考虑在 tsconfig.json 中添加 "strict": true
。
#550
#802
#838
笔记
原始原子基本上是类型推断的
const numAtom = atom(0) // primitive number atomconst strAtom = atom('') // primitive string atom
原始原子可以显式键入
const numAtom = atom<number>(0)const numAtom = atom<number | null>(0)const arrAtom = atom<string[]>([])
派生原子也是类型推断和显式类型
const asyncStrAtom = atom(async () => 'foo')const writeOnlyAtom = atom(null, (_get, set, str: string) => set(fooAtom, str))const readWriteAtom = atom<string, number>((get) => get(strAtom),(_get, set, num) => set(strAtom, String(num)))
useAtom 是基于原子类型的类型
const [num, setNum] = useAtom(primitiveNumAtom)const [num] = useAtom(readOnlyNumAtom)const [, setNum] = useAtom(writeOnlyNumAtom)