Почему я не могу использовать микшины с выражениями класса в TypeScriptJavascript

Форум по Javascript
Anonymous
Почему я не могу использовать микшины с выражениями класса в TypeScript

Сообщение Anonymous »

Я узнал о 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

Вернуться в «Javascript»