在TypeScript中引用Vue.js的类型定义
问题描述:
我想在我的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
只引用类型定义而不需要'需要'库吗?
答
你可以写自己的定义文件(如VUE-global.d.ts),其中Vue
将在全局命名空间中定义:
import _vue = require('vue');
declare global{
const Vue: typeof _vue;
}
不要忘记在tsconfig
这个定义
在这段代码中看到一行一行的解释是非常棒的。 TypeScript有时难以理解:) –
此外,在这段代码中,TypeScript仍然给出''let test':Vue = new Vue({})'这样的行'Can not find name'Vue''错误;' –
@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_不包含在您的项目中。 –