Я читал о миксинах в Typescript, пытаясь найти лучший метод композиции, чем расширение класса.У меня получилось несколько классных вещей.Но я всегда создаю функции, которые выглядят так:
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?