typescript - 将类型断言与解构赋值一起使用的最佳方法是什么?
问题描述
我有一些使用解构赋值的代码,如下所示:
const { values: project, setValues, submitForm } = useFormikContext();
根据TypeScript 类型断言文档,我想使用as
关键字来告诉 TS 编译器project
始终是 type Project
。
什么是正确的语法?我试过了:
const { values: (project as Project), setValues, submitForm } = useFormikContext();
但这是无效的。
解决方案
通过查看实现,定义使用TypeScript 泛型
export function useFormikContext<Values>() {
const formik = React.useContext<FormikContextType<Values>>(FormikContext);
return formik;
}
它会创建一个反应上下文,如果您将钩子称为:
useFormikContext<Project>()
可能不仅值是 type Project
,而且setValues
只接受 object 类型Project
(不幸的是没有使用该库)
推荐阅读
- linux - proxy_pass 不支持 # in nginx
- android-gradle-plugin - httpclient 与 Android 现在提供的类冲突
- spring-mvc - 用于发布请求和 Bean 验证的 Spring MockMVC
- python - 使用 pandas 数据框将数据写入 postgresql 时出错
- excel - 如何更改 Excel 报表的背景颜色
- java - 我从 API 服务器将数据添加到列表中,但列表的大小为零,为什么?
- c# - GroupBy - 获取 TotalCount
- java - Java-Spark:无法在集群模式下读取属性文件
- java - 无法获取文本文件的 URI
- python-3.x - 导入 .doc 文件