如何使Typescript识别我的自定义全局过滤器?

时间:2019-06-14 15:31:18

标签: typescript vue.js

我创建了一个自定义全局Vue.js过滤器来格式化降价语法。效果很好,但打字稿(或我选择的IDE为PhpStorm)无法从组件模板中识别“ markdown”过滤器。它不会引发错误,但是我没有任何智能感知。有什么方法可以将一些定义文件拖放到某个地方,以便获得智能感知?

1 个答案:

答案 0 :(得分:2)

您要寻找的是module augmentation。具体来说,在他们的例子中,他们有一个augmenting types for use with plugins的示例。

但是,相同的原理也适用于您在此处所做的事情,因此您将制作一个文件,例如vue-shim.d.ts,看起来像这样:

import Vue from 'vue'
import MarkdownFilterTyping from 'wherever'


declare module 'vue/types/vue' {
  interface Vue {
    filterMarkdown: MarkdownFilterTyping
  }
} 

现在您的ide应该认识到Vue具有此方法全局绑定