typescript - vue-class-component 和 Mixins
问题描述
我将 vue-class-component 与 TypeScript 一起用于我的 Vue 项目。我有它的组件和 Mixin:
// MyComp.vue
import Component, { mixins } from 'vue-class-component'
import MyMixin from './mixin.ts'
@Component
export class MyComp extends mixins(MyMixin) {
compValue: string = 'Hello';
}
// mixin.ts
import Vue from 'vue'
import Component from 'vue-class-component'
@Component
export default class MyMixin extends Vue {
created() {
console.log(this.compValue); // TS2339: Property 'compValue' does not exist on type 'MyMixin'.
}
}
它可以工作,但 TypeScript 抱怨缺少属性“compValue”。如何解决这个问题?
解决方案
发生错误是因为compValue
不存在于MyMixin
. 如果这是一个永远不会自行实例化的抽象类,并且可以保证该属性存在,则可以声明它:
export default class MyMixin extends Vue {
compValue: string;
created() {
console.log(this.compValue);
}
}
推荐阅读
- javascript - 创建扩展导入的超类的子类的问题
- security - 应用程序可以在哪里获取公钥来验证签名密钥?
- python - 使用 gmplot 和 Python 显示多个 GeoJSON 多边形
- javascript - 特征检测的最佳方法:focus-within 伪类
- javascript - Twitch、YouTube、Twitter 和 Reddit 等网站如何在不实际重新加载的情况下加载页面并更改 URL?
- python-3.x - 使用 Python 3 的多线程优先级队列
- go - 循环指针
- javascript - 如何将图像缩放和居中为方形尺寸?
- swift - Swift - 帮助解决崩溃“无效更新:第 0 部分中的无效行数” - 具体案例
- node.js - 尝试运行我的应用程序时出现相同的错误。“TypeError:this.microservicesModule.register 不是函数”