![](/img/trans.png)
[英]noUncheckedIndexedAccess type assertion in array destructuring assignment
[英]What's the best way to use a type assertion with destructuring assignment?
我有一些使用解构赋值的代码,如下所示:
const { values: project, setValues, submitForm } = useFormikContext();
根据TypeScript 类型断言文档,我想使用as
关键字告诉 TS 编译器project
将始终是类型Project
。
什么是正确的语法? 我试过了:
const { values: (project as Project), setValues, submitForm } = useFormikContext();
但这是无效的。
通过查看实现,定义使用TypeScript Generics
export function useFormikContext<Values>() {
const formik = React.useContext<FormikContextType<Values>>(FormikContext);
return formik;
}
它会创建一个反应上下文,如果您将钩子称为:
useFormikContext<Project>()
可能不仅值的类型是Project
,而且setValues
也只接受 object 类型的Project
(不幸的是没有使用该库)
您可以使用以下语法来解决此问题:
const { values: project, setValues, submitForm }: { values: Project; setValues: SomeType1, submitForm: SomeType2} = useFormikContext();
您也可以创建另一个变量:
const { values: project, setValues, submitForm } = useFormikContext();
const a: Project = project;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.