首页 > 解决方案 > 是否会有 Typescript 的“mixin”关键字?

问题描述

我一直在阅读 Typescript 中的 mixins,试图找到比类扩展更好的组合方法。我得到了一些很酷的东西。但我总是创建如下所示的函数:

export function CanFly<T extends Constructor<{}>>(Base: T) {
    return class extends Base {
        flying: boolean;
        constructor(...args: any[]) {
            super(...args);
        }
        fly () {
            this.flying = true;
        }
        land () {
            this.flying = false;
        }
    };
}
class Person {
    name: string;
}
export class SuperHero extends CanFly(Person) {
    constructor () {
        super();
    }
}

似乎应该有一个 mixin 关键字或其他东西来删除: <T extends Constructor<{}>>(Base: T)。这样的事情存在吗?

在 C# 中,您可以扩展多个类,这些类似乎完成了非常相似的事情。这是事情发展的方向吗?或者以后会有mixin关键字吗?

标签: typescript

解决方案


推荐阅读