ts 泛型 后面的那个冒号是干嘛的?

发布于 2022-09-13 01:28:31 字数 111 浏览 18 评论 0

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

前面的还能看懂,请问这个 : T 是干嘛的啊

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

━╋う一瞬間旳綻放 2022-09-20 01:28:31

就是普通的类型标记啊……

// 这能看懂吧?
// 标记 arg 是个 number 类型
// 标记 foo 返回值是个 string 类型
function foo(arg: number): string;

// 加上泛型,跟上面没区别
function foo<T>(arg: number): string;

// 改变一下 arg 的类型和 foo 的返回值类型
// 这里意思即为 foo 的返回值和 arg 的返回值类型永远相同
// 你传 foo(number) 进来,返回值就也是 number
// 你传 foo(string) 进来,返回值就也是 string
function foo<T>(arg: T): T;
时光无声 2022-09-20 01:28:31

冒号后面的T代表该函数返回的类型

函数的<>中的T是泛型声明:即有一个类型叫T,在后面可以用T指代这个还不知道的类型。

这里在返回值的位置使用TT就代表该函数要返回对应泛型的类型。

例如 identity<string>('a') 返回string类型的值。

温柔女人霸气范 2022-09-20 01:28:31

identity<T>是一个泛型函数,泛型记作T
(arg: T): T 参数arg的类型是T,返回值的类型是T

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文