2017-04-06 109 views
1

我想在我的Vue.js代码(v2.2.1)中进行类型检查。作为一个开始我只是想这一条线与打字稿编译(即,我要被识别的Vue公司类):在TypeScript中引用Vue.js的类型定义

var app = new Vue(); 

,如果我进口Vue公司与编译:

import * as Vue from 'vue'; 

然而,它生成一个require()电话:

var Vue = require("vue"); 

我不使用的模块,我只是引用了Vue公司库从CDN我的脚本之前。

我想引用定义文件为这样:

但Vue的类不能被识别(大概是因为它在定义文件中导出,因此应该导入?)。

我可以使用import只引用类型定义而不需要'需要'库吗?

回答

2

你可以写自己的定义文件(如VUE-global.d.ts),其中Vue将在全局命名空间中定义:

import _vue = require('vue'); 

declare global{ 
    const Vue: typeof _vue; 
} 

不要忘记在tsconfig

这个定义
+0

在这段代码中看到一行一行的解释是非常棒的。 TypeScript有时难以理解:) –

+0

此外,在这段代码中,TypeScript仍然给出''let test':Vue = new Vue({})'这样的行'Can not find name'Vue''错误;' –

+1

@RomanNurik,first行从'node_modules/vue/types/index.d.ts'中导入Vues定义,然后在全局名称空间中声明'Vue'。看看这个[全局声明模板](https://www.typescriptlang.org/docs/handbook/declaration-files/templates/global-modifying-module-d-ts.html)。关于错误 - 似乎_vue-global.d.ts_不包含在您的项目中。 –

相关问题