С es6, скажем, у меня есть базовый класс:
export class BaseClass {
constructor(meta) {
this.meta = Object.assign({}, { alwaysPresent: 'some value' }, meta);
}
}
и класс подкласса:
import { BaseClass } from './base-class';
import childMeta from './child-meta';
export class ChildClass extends BaseClass {
constructor() {
super(childMeta);
}
fn() {
this.meta.property1;
}
}
с childMeta
:
export default {
property1: 'property1Value',
property2: 'property2Value'
};
Как мне создать base-class.d.ts
, чтобы, когда я это сделаю, this.meta
я мог видеть свойства childMeta
?
примерно так:
текущий base-class.d.ts
export class BaseClass {
protected meta: { property1: string; property2: string }; // for illustration purposes
}
Примечания:
childMeta
может быть буквально любым js объектом с любым свойством - несколько классов будут расширять базовый класс
- im в основном после intellisense, правда. Для этого я использую vscode.
До сих пор я пробовал читать несколько учебных пособий по динамическим c типам, но я не могу заставить их работать.
мне нужно даже возможно?