Почему я не могу использовать микшины с выражениями класса в 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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