在TypeScript中引用Vue.js的类型定义

时间:2017-04-06 02:34:21

标签: typescript vue.js

我正在尝试在我的Vue.js代码(v2.2.1)中进行类型检查。首先,我只想用TypeScript编译这一行(即,我希望识别Vue类):

var app = new Vue();

如果我用以下内容导入Vue,则编译:

import * as Vue from 'vue';

但是,它会生成require()来电:

var Vue = require("vue");

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

我尝试将定义文件引用为:

/// <reference path="../node_modules/vue/types/index.d.ts" />

但Vue类无法识别(可能是因为它在定义文件中导出,因此应该导入?)。

我可以使用import仅引用类型定义而不需要“库”吗?

2 个答案:

答案 0 :(得分:6)

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

import _vue = require('vue');

declare global{
    const Vue: typeof _vue;
}

不要忘记在tsconfig中包含此定义

答案 1 :(得分:0)

如果您使用的是libs官方的documentation。 下载所有文件。 在您的打字稿文件中添加参考:

/// <reference path="../path_to../app/TypeScript/_definitely_typed/Vue/2.6.10/index.d.ts" />

只需更改文件 vue.d.ts

注释行:

export const Vue: VueConstructor;

在之后添加:

declare global{
    const Vue: VueConstructor;
}