Сообщество StackOverflow! Утилита $Subtype<>
позволяет делать много странных вещей. Теперь мне нужно избавиться от старой функциональности, используя утилиту $ Super и Generics. Буквально спецификация потока очень краткая, я не смог найти ничего о том, как расширить экземпляр класса новыми методами. Пожалуйста, помогите мне с FlowFix ?.
Я перепробовал много хитростей, но, смотри, я не могу изменить поведение, иначе говоря использование этой функции.
/* @flow */
class MainClass<C> {
constructor(
callback: (
resolve: (result?: any) => void,
reject: (error?: any) => void
) => mixed
): void {
// Contructor things
}
}
type ExtendedClass<D> = MainClass<D> & {
resolve(D): void;
reject(Error): void;
}
export function extended<D>(): ExtendedClass<D> {
let resolve;
let reject;
const main: MainClass<D> = new MainClass((res, rej) => {
resolve = res;
reject = rej;
});
main.resolve = resolve;
main.reject = reject;
return main;
}
Попробуйте этот пример
main.resolve = resolve;
^ Cannot assign `resolve` to `main.resolve` because property `resolve` is missing in `MainClass` [1].
References:
22: const main: MainClass<D> = new MainClass((res, rej) => {
^ [1]