2017-06-03 71 views
0

我编写了需要Vuejs库v2的typescript 2.3 app.ts。 Vuejs脚本src在html文件中手动添加。 我只想用Vuejs进行类型检查! 我的预期,我只是必须引用这样的:无需使用typescript模块()

/// < reference path="vue.d.ts" />

Vue公司类是不从app.ts.访问

我试图直接导入模块:

import * as Vue from "./vue";

这个时候我必须使用新Vue.Vue({})访问的类,但2017年VS构建。 生成的app.js以开头Var Vue = require(“./ vue”);。 然而,在浏览器中,我得到一些错误:

  • 出口参考(解决通过添加出口= 0;在.TS
  • 要求第1行是不是一个函数

对于require(),我加<脚本src =“Scripts/require.js”> </script>但是新错误:尚未加载上下文

我试着用systemjs代替require.js,我加了< script> System.import('scripts/app.js'); </script>我得到一个404访问“Scripts/vue”(app.js中的require),其余的app.js不会被执行。

注:tsconfig.json

我在我的记忆中很惊讶,因为我不使用,jQuery的的参考与打字稿0.9

我完全失去了工作。帮我 !谢谢你的社区!

回答

0

我通常通过创建globals.d.ts文件来解决您遇到的问题,该文件负责设置我的代码所期望的全局环境。你的情况是这样的:

import * as _Vue from "vue"; 

declare global { 
    const Vue: typeof _Vue; 
} 

这使得这样编译器会看到在全球空白,这是同类型的“VUE”模块出口什么的Vue象征。

通过上述文件,这个编译:

const q = new Vue(); 

注意,你要么将不得不使用一个tsconfig.json。即使是空的也可以。 (通过“空”,我的意思是一个文件,只包含一个空的JSON结构:{}。)或者你将不得不列出要编译的所有文件,包括在命令行上的globals.d.ts

+0

我喜欢这个approch.'const q =新Vue()'不会建立,但'新Vue.Vue'确实,我有intellisense。 这使得一个问题:生成的JS文件保持'Vue.Vue'表示法不正确(_file2.ts:10 Uncaught TypeError:Vue.Vue不是构造函数_)。 – Baud