vue3 ts defineEmits类型定义
时间: 2023-11-22 19:49:17 浏览: 117
vue3+ts实战项目组件工具库.zip
在Vue3中,我们可以使用`defineEmits`来定义子组件向父组件发送事件的方法。在TypeScript中,我们可以使用泛型约束来定义这些方法的类型。
以下是两种不同的方式来定义`defineEmits`的类型:
1. 不使用泛型约束的方式:
```typescript
import { defineEmits } from 'vue';
const emits = defineEmits(['sendFatherData']);
// 发送事件
emits('sendFatherData', 'hello');
```
2. 使用泛型约束的方式:
```typescript
import { defineEmits } from 'vue';
const emits = defineEmits<{
sendFatherData: (val: string) => void;
}>();
// 发送事件
emits('sendFatherData', 'hello');
```
在第二种方式中,我们使用了泛型约束来定义了`sendFatherData`方法的参数类型和返回值类型。这样做的好处是可以在编译时就检查出类型错误,避免在运行时出现错误。
阅读全文