Unsafe call of an `any` typed value.eslint@typescript-eslint/no-unsafe-call Unexpected side effect in "visibleColumns" computed property.eslintvue/no-side-effects-in-computed-properties
时间: 2024-01-04 09:03:13 浏览: 32
这些错误是由ESLint插件检测到的。第一个错误是因为您正在使用`any`类型的值进行不安全的调用,第二个错误是因为您在计算属性中引入了副作用。
为了解决这些错误,您可以采取以下措施:
1. 在代码中明确指定类型,避免使用`any`类型。例如,您可以改为使用`Column`类型来定义列:
```
interface Column {
name: string;
label: string;
// 其他属性
}
// 在组件中使用
columns: Column[] = [
{ name: 'column1', label: 'Column 1' },
{ name: 'column2', label: 'Column 2' },
// 其他列
];
```
2. 避免在计算属性中引入副作用。计算属性应该是纯函数,只依赖于其它响应式数据的值并返回一个新的响应式值。如果您需要在计算属性中引入副作用,可以考虑使用方法或侦听器来实现。
例如,您可以将`visibleColumns`计算属性替换为一个方法:
```
methods: {
getVisibleColumns() {
let columns = [...this.columns];
if (this.rows.length === 20) {
columns.push({name: 'DOC_UNSIGNED'});
columns.push({name: 'DOC_SIGNED'});
}
return columns;
}
}
```
然后,在模板中使用`getVisibleColumns()`方法来获取可见列的值:
```
<q-table ... :visible-columns="getVisibleColumns()"> </q-table>
```