Я узнал о mixins в javaScript и решил реализовать их в TypeScript . Все работает нормально, когда я обычно объявляю занятия, но когда я назначаю их переменным, я сталкиваюсь с неожиданным поведением. Методы микшина становятся недоступными на объектах, созданных из класса в сочетании с микшином.// Mixin declaration
interface SpeechMixin {
greetings(): string;
}
const speechMixin: SpeechMixin = {
greetings() {
return `Hello, my name is ${this.name}`;
},
};
// Class expression
const User = class {
constructor(public name: string) {}
};
Object.assign(User.prototype, speechMixin);
interface User extends SpeechMixin {}
const george = new User('George');
console.log(george.greetings()); // ERROR: Property 'greetings' does not exist on type 'User'.
Подробнее здесь: https://stackoverflow.com/questions/796 ... typescript