当前位置: 首页 > 知识库问答 >
问题:

带有泛型的打字稿箭头函数的语法是什么?

章振
2023-03-14

typescript手册目前没有关于箭头功能的内容。普通函数可以使用以下语法进行一般类型化:示例:

function identity<T>(arg: T): T {
    return arg;
}

箭头函数的语法是什么?

共有3个答案

阎懿轩
2023-03-14

我发现上面的例子令人困惑。我正在使用React和JSX,所以我认为它使场景复杂化了。

我从TypeScript深度潜水得到了澄清,其中指出箭头泛型:

解决方法:在泛型参数上使用extends来提示编译器它是泛型的,这来自一个帮助我的简单示例。

    const identity = < T extends {} >(arg: T): T => { return arg; }
严斌
2023-03-14

如果您在中。tsx文件您不能只写

const foo = <T, >(x: T) => x;

扩展{}黑客相反,这种黑客至少保留了意图。

封德华
2023-03-14

解释Robin引用的语法的完整示例...让我明白了:

像下面这样的东西工作正常:

function foo<T>(x: T): T { return x; }

但是,使用箭头通用函数不会:

const foo = <T>(x: T) => x; // ERROR : unclosed `T` tag

变通方法:在泛型参数上使用扩展来提示编译器它是泛型,例如:

const foo = <T extends unknown>(x: T) => x;
 类似资料:
  • 我试图使用在chrome中完美工作的d3可视化,但internet explorer抛出了一个语法错误。 错误似乎在线路上:

  • 我正在学习Typescript,并尝试实现一个简单的React/Redux应用程序。当我使用同步操作时,它工作得很好,但问题在于异步操作。我正在学习官方的redux教程。 首先,我宣布会议状态 然后我为这个动作声明接口 我使用联合类型导出它们

  • 我正在尝试定义一个基本接口,其中包含一个箭头函数作为属性。但是,它给了我一个TS错误。 TS2322:类型'(测试:数字)= 事实上,我不理解这个错误,因为我想要一个字符串或一个数字作为我的函数的参数,它告诉我我不能只使用数字。如何将字符串或数字作为箭头函数的输入? 此外,当我这样做,错误消失 为什么?

  • 在“功能”部分中,它说 该= 注意:在箭头(= 但是在“匿名函数”部分中,它说 如果函数只包含一个语句,则可以使用箭头表示法缩短它 这是否意味着我可以在匿名函数中使用不是表达式的语句(例如if语句)? 还是我混淆了表达和陈述的概念?我想 表达式:可以求值为一个值(2 3,print(")也属于表达式) 语句:可以执行的代码。所有表达式都可以是语句。如果语句和返回语句是不是表达式的语句的示例。 如果

  • 请问下, Notion这里的图标,带有箭头的和不带箭头的区别是什么呢?

  • 问题内容: 使用Typescript在Visual Studio中输入“ .ts”文件,请考虑以下声明: 这很好,类型检查很好,一切都很好。 现在,将完全相同的代码放入用于JSX和React的“ .tsx”文件中。 Intellisense感到非常沮丧和抱怨,因为它试图使 成为React JSX元素。但我的意图是让编译器将其视为通用类型指示符。 编译器抱怨: [gulp-typescript] 1