У меня есть два класса.Одним из них является родительский класс Model.Другой это его дети, так что:
import { IModel } from '../shared'
export default class DataModel implements IModel {
private data: {[key: string]: any} = {}
public constructor(data: {[key: string]: any}) {
this.data = data
}
// ... other methods
public forRequest = (params?: {[key: string]: any}): object => {
return {
...this.data,
...params
}
}
}
и
import { IModel } from '../shared'
import DataModel from './_'
export default class LoginModel extends DataModel implements IModel {
constructor() {
super({
email: 'info@email.com',
password: 'test1234'
})
}
public forRequest = (): object => {
return super.forRequest({
sso: true
})
}
}
и:
export interface IModel {
forRequest(params?: {[key: string]: any}): object
...
}
По https://www.typescriptlang.org/docs/handbook/classes.html и пример с животнымиЯ хотел бы вызвать мой метод forRequest()
, передав параметры родительскому классу.
Однако, когда я звоню super.forRequest(...)
Я получаю сообщение об ошибке: Доступны только публичные и защищенные методы базового класса через ключевое слово 'super' .ts (2340) .
(У меня нет проблем с перегрузкой метода forRequest () в родительском классе, если это может быть решением, если необходимо, но не уверен, что это хорошая идея).(в IModel Я пробовал обоими способами, с параметрами и без)
Мне интересно, что здесь отличается от примера с сайта TS, и почему код не работает.
Любая помощь приветствуется.Спасибо.