Почему Typescript вызывает ошибку, когда я пытаюсь вызвать обобщенную функцию c из функции стрелки, используя предоставленный параметр типа.
function a<T>() { }
function b<T>() { a<T>() } // no errors
const c: <T>() => void = () => a<T>() // cannot find name T. ts(2304)
EDIT
Этот вопрос возник, когда я пытался написать обобщенную функцию стрелки c, аналогичную c
в файле .tsx
.
В этом случае все следующие синтаксисы вызывают ошибку.
const c: <T>() => void = <T>() => a<T>()
//^ Type 'Element' is not assignable to type '<T>() => void'.
// Type 'Element' provides no match for the signature '<T>(): void'.ts(2322)
const c = <T>() => a<T>()
//^ JSX element 'T' has no corresponding closing tag.ts(17008)
В итоге я решил использовать синтаксис обычной функции.