如何在React hooks Typescript中定义泛型数组类型



挂钩:

const t = Array<number>
const [list, setList]: [t, ListFunction<t> ] = useState(null)

类型:

export type ListFunction<r> = Array<r[]> 

提供:

类型'[any,Dispatch]'不可分配给类型'[t ListFunction]'。类型"Dispatch"缺少类型"t[]"中的以下属性:pop、push、concat、join和其他27个属性。ts(2322)

这反而有效:

export type ListFunction = Array<any[]> 

在这种情况下,setX(setList)的类型不是Array<r[]>。只需将useState()的类型设置为<number[]>),并让它推断值的类型,然后设置函数:

const [list, setList] = useState<number[] | null>(null);

我还将使用一个空数组进行初始化,从而避免检查值list是否不是null

const [list, setList] = useState<number[]>([]);

最新更新