У меня есть сигнатура функции, которой нужно несколько функций, чтобы следовать ей, что-то вроде этого:
type ActionCallback<R = any> = (param1: SpecificType, param2: OtherType) => Promise<R>
В основном типы параметров хорошо определены, и они должны возвращать обещание, но что этоОбещание разрешается до функции.
Вместо того, чтобы указывать тип обоих аргументов в каждом обратном вызове, я хотел бы просто указать, что переменная соответствует ActionCallback
, поэтому типы параметров выводятся:
const callback1: ActionCallback = async (a,b) => ({state: b().form, stuff: a});
const callback2: ActionCallback = async e => e.name; // doesn't need second arg in some cases
Однако, делая это таким образом, обобщенный аргумент не может быть выведен, поэтому я должен либо явно указать тип возвращаемого значения, либо оставить его по умолчанию any
Есть ли способчтобы минимизировать количество типов, которые необходимо явно пометить, убедитесь, что функция возвращает обещание и выводит разрешение обещания из тела функции?