我一直在阅读关于mixcript中的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关键字吗?