报错:不能将命名空间“FormInstance”用作类型。

如图所示:先引入import { FormInstance } from ‘element-plus’
后在文件内直接使用了类型FormInstance
出现的问题:
1.引入的类型 并没有被使用而高亮
2.后续使用类型时, 有红色下划线提示校验语法报错问题。
一开始搜索查询 说
FormInstance 是 Element Plus 中的一个命名空间(namespace),不能直接作为 TypeScript 类型使用,应使用其导出的具体类型。
要改成:
import type { FormInstance } from ‘element-plus’
尝试后 还是下划线报红。
又经过查改后,严格方式是
1.需要先从 element-plus 库中先导入 ElForm 组件
import { ElForm } from 'element-plus'
2.然后创建一个新的类型别名 FormInstance
type FormInstance = InstanceType<typeof ElForm>
- 其中typeof ElForm 是获取 ElForm 组件的类型
- InstanceType 是 TypeScript 内置的工具类型,用来获取构造函数类型的实例类型
所以 定义 FormInstance 类型为 ElForm 组件实例的类型
这种定义类型的方式后,就完全将FormInstance定义成了组件一样的类型。
再去使用类型FormInstance 就不会再报红了
修改前:
import { FormInstance } from 'element-plus'
const formRef = ref<FormInstance | null>(null)
const { visible, isLoading, openDialog, closeDialog, submitLoading, cancelLoading } = useDialog(formRef as Ref<FormInstance>)
修改后
import { ElForm } from 'element-plus'
type FormInstance = InstanceType<typeof ElForm>
const formRef = ref<FormInstance | null>(null)
const { visible, isLoading, openDialog, closeDialog, submitLoading, cancelLoading } = useDialog(formRef as Ref<FormInstance>)



403

被折叠的 条评论
为什么被折叠?



