【发布时间】:2021-08-08 16:20:01
【问题描述】:
我有一些使用destructuring assignment的代码如下:
const { values: project, setValues, submitForm } = useFormikContext();
根据TypeScript type assertion documentation,我想使用as 关键字告诉TS 编译器project 将始终是Project 类型。
这个的正确语法是什么?我试过了:
const { values: (project as Project), setValues, submitForm } = useFormikContext();
但那是无效的。
【问题讨论】:
-
通过查看at the implementation,我认为您应该改用
useFormikContext<Project>() -
谢谢@Teneff。这正是我想要的——当我现在在 VScode 中将鼠标悬停在
project上时,我可以看到project的类型为Project。您能否将其添加为答案并进一步解释其为何有效?是不是<FormikContextType<Values>>把<Values>变成了一个(类似变量的东西)来声明values的类型?
标签: typescript formik destructuring type-assertion object-destructuring