vue3的setup,defineEmits报错'event' is defined but never used.

eslint直接用的airbnb
vue3的setup,defineEmits报错'event' is defined but never used.
vue3的setup,defineEmits报错'event' is defined but never used.

const emit = defineEmits<{

(event: 'update', collapse: boolean): void

}>()

const handleCollapse = () => {

emit('update', !props.collapse)

}

不想每个defineEmits都加

// eslint-disable-next-line no-unused-vars

更不想直接把no-unused-vars这个规则关闭

有什么办法解决吗


回答:

2022/1/5 更新

今天整理 vue3 项目模板的时候,发现确实存在此问题,之前的回答不能很好解决,补充下。

配置:

'no-unused-vars': 'off',

'@typescript-eslint/no-unused-vars': ['error', { vars: 'all', args: 'after-used', ignoreRestSiblings: true }],

由于项目中使用了 @typescript-eslint/eslint-plugin ,而 airbnb 官方没 typescript 依赖包,故关了 no-unused-vars 规则 , @typescript-eslint/no-unused-vars 是基于 no-unused-vars 进行扩展,原回答中的选项仍可用。

参考地址。

原回答
以下为 airbnb-base 的 no-unused-vars 相关配置:

'no-unused-vars': ['error', { vars: 'all', args: 'after-used', ignoreRestSiblings: true }]

如果不想直接禁用此规则的话,可尝试以下的配置:

一、 不检测参数,保留其它不变

'no-unused-vars': ['error', { vars: 'all', args: 'none', ignoreRestSiblings: true }]

这样配置的话,所有函数参数相关的检测就被禁止了,无用变量的检测还能继续运行。

二、排除特定字符开头的参数

'no-unused-vars': ['error', { vars: 'all', args: 'after-used', ignoreRestSiblings: true, argsIgnorePattern: '^_' }]

此配置影响较小,只要定义参数时,将无用的参数加上下划线即可:

const emit = defineEmits<{

(_event: 'update', _collapse: boolean): void

}>()

const handleCollapse = () => {

emit('update', !props.collapse)

}

具体可查看 ESLint 规则文档。

以上是 vue3的setup,defineEmits报错&#x27;event&#x27; is defined but never used. 的全部内容, 来源链接: utcz.com/p/936704.html

回到顶部