我不明白为什么我需要在我的.d.ts文件中导入Vue?我在官方网站上找到“在声明增强类型之前确保导入'vue'”。但是为什么需要这样做呢?https://v2.vuejs.org/v2/guide/typescript.html#Augmenting-Types-for-Use-with-Plugins
有时候,我没有在我的. d.ts文件中导入Vue,但是没有报告错误。我浏览了许多文章,但是没有找到答案
我不明白为什么我需要在我的.d.ts文件中导入Vue?我在官方网站上找到“在声明增强类型之前确保导入'vue'”。但是为什么需要这样做呢?https://v2.vuejs.org/v2/guide/typescript.html#Augmenting-Types-for-Use-with-Plugins
有时候,我没有在我的. d.ts文件中导入Vue,但是没有报告错误。我浏览了许多文章,但是没有找到答案
1条答案
按热度按时间xzv2uavs1#
vue希望您做的是将类和接口合并在一起。在某种程度上,这就像用自己的属性扩展
Vue
类一样。下面是一个简单的例子:
现在,当您示例化这个
Car
对象时,您可以看到它将同时具有doors
和wheels
属性。所有这些都很好,直到你尝试做一些更复杂的事情,比如给
Car
接口添加一个方法,然后你会得到一个错误,因为接口不能保存实现,只能保存结构。正如您所链接的文章提到的,为了解决这个问题,typescript增加了类型。
通过导入
Car
类,然后声明一个同名的模块,可以将两个objects
合并在一起:现在,这不允许您将实现添加到接口中,但它所做的是公开对象 prototype,您现在可以在其中添加实现细节,而之前无法添加。
当您省略import语句时没有看到错误的原因是,对于TypeScript,您已经为它提供了一个模块
Vue
,并且在您尝试访问import将为您提供的内容之前没有错误。