Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1116|回复: 0
打印 上一主题 下一主题

TypeScript类定义后面的尖括号表示什么? 泛型编程

[复制链接]

1228

主题

1996

帖子

7572

积分

认证用户组

Rank: 5Rank: 5

积分
7572
跳转到指定楼层
楼主
发表于 2020-10-14 15:28:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Qter 于 2020-10-14 15:30 编辑

export default class AccountSidebar extends React.Component<{}, AccountSidebarState> {

实现
interface Component<P = {}, S = {}, SS = any> extends ComponentLifecycle<P, S, SS> { }
class Component<P, S> {...}
Allow to write React.Component<Props> and React.Component instead of React.Component<Props, NoState> and React.Component<NoProps, NoState>.Allow to write React.Component<Props> and React.Component instead of React.Component<Props, NoState> and React.Component<NoProps, NoState>.

尖括号表示泛型,可以用来约束内容(这话我感觉说的也难懂)

那举个例子吧,声明一个函数test,我希望她接受一个叫参数nums,而且这个参数是数组,且数组里的内容必须是number,可以这么写:

var test = function(nums: Array<number>) {
    console.log(nums);
};
然后,当调用test函数时,如果传入的参数不是数组,或者数组里不是number类型的值的话,就会错误:

泛型编程(Generic Programming)最初提出时的动机很简单直接:发明一种语言机制,能够帮助实现一个通用的标准容器库。所谓通用的标准容器库,就是要能够做到,比如用一个List类存放所有可能类型的对象这样的事;泛型编程让你编写完全一般化并可重复使用的算法,其效率与针对某特定数据类型而设计的算法相同。泛型即是指具有在多种数据类型上皆可操作的含义,与模板有些相似。




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|firemail ( 粤ICP备15085507号-1 )

GMT+8, 2024-4-25 23:06 , Processed in 0.054126 second(s), 19 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表