" mean in TypeScript? (2 个回答) 4年前关闭。-6ren">
gpt4 book ai didi

javascript - 关于 TypeScript 中尖括号的困惑

转载 作者:行者123 更新时间:2023-12-01 15:18:54 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





What does enclosing a class in angle brackets "<>" mean in TypeScript?

(2 个回答)


4年前关闭。




我目前正在学习 TypeScript,并且对使用什么尖括号感到有些困惑。

我知道你可以使用它,例如对于泛型类型,括号将站在后面:

function myFn<T>(param: T): T {
return param;
}

此外,如果您为泛型类型定义类型:
let identity = myFn<string>("hello world");

对于数组,您可以将其用于定义数组类型的两种方法之一:
let myArr: Array<number>;

在什么情况下括号会出现在单词前面?还有哪些使用尖括号的用例?

最佳答案

让我们分解一下,好吗?

function myFn<T>(param: T): T {
return param;
}
  • function : 它的 Typescript 关键字,表示您正在声明一个函数。
  • myFn : function 的名称在第 1 点。
  • <T> :这意味着函数声明将使用泛型类型:要么在它要接受的参数中,要么在返回类型中。作为开发人员,您需要明确设置它。
  • (param:T) : 您只有一个参数,名称为 param .同时,paramT 类型,您已在第 3 点中设置。
  • :T :这表示您在第 1 点声明的函数必须返回 T 类型的值.
  • { return param } : 返回 param 的值.请注意,这是允许的,因为 paramT 类型并且您的函数需要返回一个类型 T .让我们考虑另一个片段:

  • 这是不允许的:
    function myFn<T>(param: T): T {
    return 0;
    }

    原因是 0number 类型而不是输入 T .

    让我们用纯英语表达:

    您正在声明 function调用 myFn它将接受 T 类型的参数并将返回 T 类型的值.

    而已。现在,关于实际用法:
    let identity = myFn<string>("hello world");

    变量 identity将是一个函数的引用,该函数接受一个类型为 string 的参数(还记得 params 吗?) .它将返回 string 类型的值以及 - 根据函数声明,它将返回 "hello world" .

    您可以在 Type Assertion of Typsecript 上阅读更多信息

    关于javascript - 关于 TypeScript 中尖括号的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48337555/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com