TS 识别Vue全局方法

Vue 添加全局方法之后直接调用会造成TS报错,需要配置声明文件

shims-vue.d.ts文件配置如下

import Vue from 'vue'

declare module '*.vue' {
  export default Vue // 识别.vue文件
}
declare module 'vue/types/vue' {
  interface Vue {
    $toTop: any // 全局方法
  }
}

有时候会有.vue文件无法识别的情况,那是因为在这个文件有声明了别的接口,需要把接口转为global,例如

import Vue from 'vue'

declare module '*.vue' {
  export default Vue
}

declare module 'vue/types/vue' {
  interface Vue {
    $toTop : any
  }
}

declare global {
  interface module {
    title : string
  }

   interface meta {
    moduleIndex ?: string
    module ?: module
    title ?: string
    show ?: boolean
  }

   interface route {
    path : string
    name: string
    component: any
    meta ?: meta
    alias ?: string
  }

   interface variable {
    [propName: string]: any
  }
}

这样的写法

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 为TypeScript引用的JS写声明文件 写TypeScript声明文件的时候会有三个困惑,一个是声明文件是什么...
    心淡然如水阅读 25,309评论 1 2
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,145评论 1 32
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,451评论 0 9
  • feisky云计算、虚拟化与Linux技术笔记posts - 1014, comments - 298, trac...
    不排版阅读 3,926评论 0 5
  • 昨天打扫卫生的时候,选择先整体书橱,而把食物储藏间放到下一次再整理,发现自己还是更看重自己精神食粮。 又重新研究了...
    靜靜飛翔阅读 73评论 0 0