在 TypeScript 中使用 useState 钩子
Using useState hook with TypeScript
我想知道是否可以在设置 useState 类型时使用继承。我的意思是如果有这样的界面:
interface PackageItem {
id: number,
name: string,
address: string
}
还有一个类似的界面
interface Selectable {
selected: boolean
}
现在我想创建一个状态,在该状态下我将拥有一系列可选择的包,
所以我尝试了这样的事情:
const [selectablePackages, setSelectablePackages] = useState<(PackageItem extends Selectable)[]>();
但我一直收到错误,它突出显示了扩展词,说:
Parsing error: Unexpected token, expected ","
我没有正确设置状态类型,我该如何实现?
您打算创建一个可以使用 &
、the intersection operator
完成的内联类型
const [selectablePackages, setSelectablePackages] =
useState<(PackageItem & Selectable)[]>();
如果需要在多个地方使用某个类型或接口,请考虑使用它。
type SelectablePackageItem = PackageItem & Selectable
// Or interface
interface SelectablePackageItem extends PackageItem, Selectable {}
const [selectablePackages, setSelectablePackages] =
useState<SelectablePackageItem[]>();
我想知道是否可以在设置 useState 类型时使用继承。我的意思是如果有这样的界面:
interface PackageItem {
id: number,
name: string,
address: string
}
还有一个类似的界面
interface Selectable {
selected: boolean
}
现在我想创建一个状态,在该状态下我将拥有一系列可选择的包, 所以我尝试了这样的事情:
const [selectablePackages, setSelectablePackages] = useState<(PackageItem extends Selectable)[]>();
但我一直收到错误,它突出显示了扩展词,说:
Parsing error: Unexpected token, expected ","
我没有正确设置状态类型,我该如何实现?
您打算创建一个可以使用 &
、the intersection operator
const [selectablePackages, setSelectablePackages] =
useState<(PackageItem & Selectable)[]>();
如果需要在多个地方使用某个类型或接口,请考虑使用它。
type SelectablePackageItem = PackageItem & Selectable
// Or interface
interface SelectablePackageItem extends PackageItem, Selectable {}
const [selectablePackages, setSelectablePackages] =
useState<SelectablePackageItem[]>();