TypeScript
Quaere 对于使用 TypeScript 编写的 app 是友好的,开箱即用,类型安全。
基本用法
默认情况下,Quaere 会从 fetcher
推断出 类型,因此你可以自动获得首选类型。
useQuery
const todoQuery = query({
fetcher: (variables: { id: number }) => {
return { title: "todo" };
},
});
// variables 将被推断为 { id: number }, data 将被推断为 { title: string }
const { data } = useQuery({ query: todoQuery, variables: { id: 1 } });
你还可以显式地指定 variables
、 data
参数的类型。
type Data = { title: string };
type Variables = { id: number };
const todoQuery = query<Data, Variables>({
fetcher: (variables) => {
return { title: "todo" };
},
});
默认情况下,在 fetcher
函数内部抛出的错误默认为 Error
类型。该类型也可以明确指定。
type Data = { title: string };
type Variables = { id: number };
type BizError = Error;
const todoQuery = query<Data, Variables, BizError>({
fetcher: (variables) => {
return { title: "todo" };
},
});
const { data, error } = useQuery({ query: todoQuery, variables: { id: 1 } });
// `data` 将会是 `Data | undefined`.
// `error` 将会是 `BizError | null`.