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

Xav*_*nas 3 typescript vue.js

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

var app = new Vue();
Run Code Online (Sandbox Code Playgroud)

如果我导入Vue,则编译:

import * as Vue from 'vue';
Run Code Online (Sandbox Code Playgroud)

但是,它会生成一个require()电话:

var Vue = require("vue");
Run Code Online (Sandbox Code Playgroud)

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

我尝试引用定义文件,如下所示:

/// <reference path="../node_modules/vue/types/index.d.ts" />
Run Code Online (Sandbox Code Playgroud)

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

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

Ale*_* L. 7

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

import _vue = require('vue');

declare global{
    const Vue: typeof _vue;
}
Run Code Online (Sandbox Code Playgroud)

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