代码之家  ›  专栏  ›  技术社区  ›  Brandon

在Vue TypeScript项目中,垫片-tsx.d.ts文件的作用是什么?

  •  0
  • Brandon  · 技术社区  · 5 年前

    使用typescript创建Vue项目时,包含两个声明文件: SimsVue.D.TS TSX.D.TS .

    //shims-vue.d.ts
    
    declare module "*.vue" {
      import Vue from 'vue';
      export default Vue;
    }
    

    还有:

    //shims-tsx.d.ts
    
    import Vue, { VNode } from 'vue';
    
    declare global {
      namespace JSX {
        // tslint:disable no-empty-interface
        interface Element extends VNode {}
        // tslint:disable no-empty-interface
        interface ElementClass extends Vue {}
        interface IntrinsicElements {
          [elem: string]: any;
        }
      }
    }
    

    在创建一个小项目(没有Vuecli)时,我忘记了包含第二个项目(垫片.tsx.d.ts),而我的项目按预期编译和运行(没有错误)。

    我找到了关于它的帖子: https://github.com/vuejs/vue-cli/issues/1198 但希望能得到更多的澄清。

    我只是好奇这个文件是做什么的,为什么包括它?换句话说,如果我不包含这个声明文件,我将不得不做些什么来“破坏”我的应用程序。

    谢谢!

    1 回复  |  直到 5 年前
        1
  •  1
  •   Ohgodwhy    5 年前

    第一个文件帮助您的IDE理解文件的结尾 .vue

    第二个文件允许您使用 .tsx 启用时的文件 jsx 在您的IDE中支持Sytnax来编写JSX样式的类型脚本代码。