Я получил это сообщение об ошибке и не знаю, что мне делать (Как объяснено в EDIT ниже, я использую TS version 3.9.0-dev.20200324
) ...
ошибка (TS2345): аргумент типа «ожидаемый T» не может быть назначен параметру типа «T». 'T' может быть создан с произвольным типом, который может не иметь отношения к 'awaited T'.
Код TypeScript: lib/functional/promise-or-not.ts
// ... [more code]
export async function thenified<T>(
promise: Promise<T>,
funct: <R>(t: T) => R,
): Promise<any> {
return promise.then(
t => funct(t)
);
}
Вывод: tsc Version 3.9.0-dev.20200324
% ❯ tsc # 3.9.0-dev.20200324
lib/functional/promise-or-not.ts:10:16 - error TS2345: Argument of type 'awaited T' is not assignable to parameter of type 'T'.
'T' could be instantiated with an arbitrary type which could be unrelated to 'awaited T'.
10 t => funct(t)
~
Found 1 error.
См. Также этот комментарий в Microsoft / TypeScript / # 37664:
Неверный вывод типа возврата в обобщенной функции c с использованием Promise.all
EDIT
Из-за различных других проблем в моем код при использовании другой версии TS Я застрял, используя Version 3.9.0-dev.20200324
.
Это при использовании Version 4.0.0-dev.20200504
другие части кода здесь не показаны, проблема подробно описана в этом выпуске GitHub .
Игровая площадка 3.9.0-dev.20200324
Игровая площадка Ночь
Детская площадка 3.8.3