Допустим, у меня есть следующий класс.
class MyClass {
firstMethod: (a: string) => string;
secondMethod: (b: number) => number;
}
Я хочу создать функцию, которая принимает этот класс в качестве первого аргумента. Это должно сообщить тип возвращаемого типа второго аргумента, функции. Независимо от структурной типизации, я надеюсь ограничить поля возвращаемого типа теми, которые определены в MyClass. Например:
Хорошо:
myFunction(MyClass, () => {
return {
firstMethod: (a) => a,
secondMethod: (b) => b,
};
});
Плохо:
myFunction(MyClass, () => {
return {
firstMethod: (a) => a,
secondMethod: (b) => b,
thirdMethod: (c: boolean) => c,
};
});
Дополнительное поле должно привести к ошибке типа. Как и при изменении типов firstMethod
и secondMethod
.
Прямо сейчас, я безуспешно пытаюсь как this .
Любая помощь будет принята с благодарностью. Спасибо!