JotaiJotai

状態
Primitive and flexible state management for React

TypeScript

版本要求

Jotai 使用 TypeScript 3.8+ 语法。 如果您使用的是 3.7.5 或更低版本,请升级您的 TypeScript 版本。

Jotai 严重依赖类型推断,需要启用 strictNullChecks。 考虑在 tsconfig.json 中添加 "strict": true#550 #802 #838

笔记

原始原子基本上是类型推断的

const numAtom = atom(0) // primitive number atom
const 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)