应如何使用TypeScript绑定Vue筛选器?使用纯js非常简单,但我在将其转换为TypeScript时遇到了问题.

代码和编译错误如下:

app.ts

import * as Vue from 'vue'
...
import * as filters from './util/filters'

// register global utility filters.
Object.keys(filters).forEach(key => {
  Vue.filter(key, filters[key]);
})

util/filters.ts

export function host (url: string) {
  ...
}

export function timeAgo (time: any) {
  ....
}

Compile Error

error TS7017: Element implicitly has an 'any' type because type 'typeof ...' has no index signature.

推荐答案

我正在使用一个名为vue-property-decorator的库,在那里你可以做一些事情,比如:

import { Component, Vue } from 'vue-property-decorator'

@Component({
  name: 'ComponentName',
  filters: {
    filterName(value: any) {
      return 'Hello filter'
    }
  }
})
export default class ComponentName extends Vue {
  textToFormat = 'Hello world'
}

然后应用过滤器:

<p>{{ textToFormat | filterName }}</p>

编码快乐!

Vue.js相关问答推荐

无法从CDN使用Vue和PrimeVue呈现DataTable

如何在与父集合相同的读取中取回子集合(或重构数据?)

为什么在 Vue2 中调用 this.$emit() 后 props 没有立即更新?

如何 for each 动态创建的按钮/文本字段设置唯一变量?

将 Vue 应用程序挂载到主 Vue 应用程序的容器中

在 vue 组件中检索配置和环境变量

如何在 Vue.js 中使用 MaterializeCss?

使用 vue.js 的 axios 预检失败错误 301

在textbox文本框 VueJS 2 中键入时搜索列表

如何使用 vuejs 从 SPA 访问 /storage -laravel- 中的图像

如何将 vuetify 2.0 beta 安装到新的 vue cli 项目中?

Vue更改宽度和内容

vue 在 v-model 之后执行 @click

VS代码中的红点是什么意思

为 Vue 组件动态添加属性

在找不到图像源时设置替代图像

使用 Vue 在单个文件组件中调用渲染方法

vue 未在实例上定义,但在渲染期间引用

如何在 vue.js 中通过单击事件发出值

Mapbox 事件监听器