Итак, я столкнулся с интересной проблемой, пытаясь расширить класс для использования в другом классе и затем импортировать его в другой файл.
'class-test.js':
export default class MyClass {
constructor () {
this.date_created = new Date()
this.posts = new Posts()
}
}
class Posts extends Array {
add (val) {
this.push(val)
}
}
Затем, когда я создаю новый экземпляр MyClass в другом файле (и импортирую MyClass из class-test.js), свойство myClass.posts
рассматривается только как массив и поэтому не имеетрасширенная функция add()
Мне кажется, проблема в том, что класс Posts не перемещается вместе с классом MyClass;но без приведения я понятия не имею, как сказать ему использовать этот класс.
Я особенно расстроен тем, что он отлично работает, если все в одном файле:
class MyClass {
constructor () {
this.date_created = new Date()
this.posts = new Posts()
}
}
class Posts extends Array {
add (val) {
this.push(val)
}
}
var x = new MyClass('as', 'asd')
x.posts.add('asdf')
console.log(x.posts)
x.posts.add('qwer')
x.posts.add('zxcv')
console.log(x.posts)