所以我对 typescript 很陌生,对它知之甚少。但经过大量的痛苦和努力,我能够让它与 VueJS 一起工作。
Here's the template that I built.
我迫切想要并且花了我很长时间才完成的一件事就是让它不需要在每个奇怪的组件中导入 Vue 或任何类型的装饰器,如 Component
我做的。正如您在 this particular vue file 中看到的那样我正在扩展 Vue 并使用许多不同类型的装饰器,但我不必导入它们。这对我来说真是太好看了。
但是,我实现它的方式并不是那么漂亮。我基本上只是将所有这些东西的类型定义复制到 this folder 中。 .这很糟糕,因为只要这些包中的任何一个更改了它们的类型定义,我的模板就会开始崩溃。
但是,我发现如果我尝试简单地导入这些类型定义(我尝试了多种方法),那么它们并不是在我所有的 .vue
文件中全局可用。
我想知道,是否可以简单地将这些类型定义导入一个地方,并使它们可用于我所有的 .vue
文件?如果是这样,谁能告诉我该怎么做?如果这成功了,我会很高兴。我真的花了好几天的时间才让它发挥作用。
最佳答案
您可以在 global
范围内声明您的类型:
import Vue from 'vue'
import Component from 'vue-class-component'
declare global {
const VueComponent: typeof Component
class VueClass extends Vue {}
}
// From another file
@VueComponent({
props: {
propMessage: String
}
})
export default class App extends VueClass {
}
关于typescript - 有没有一种方法可以放弃我所做的类型定义的副本,使它们在全局范围内可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41745174/