引入import { FormInstance } from ‘element-plus‘ 。提示:不能将命名空间“FormInstance”用作类型。

报错:不能将命名空间“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>
  1. 其中typeof ElForm 是获取 ElForm 组件的类型
  2. 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>)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值