首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

浅谈TypeScript泛型Tany的区别

看下面的这个函数 function identity(arg: any): any { return arg; } identity这个函数接收一个参数,这个参数是任意类型,返回的结果也是任意类型...如果这个函数的传入的类型和返回的类型相同,使用any类型,就无法实现这个约束。 因此,需要一种方法使返回值的类型与传入参数的类型是相同的。...通过上面简单的例子,我们可以很好的理解这两个区别,打个比方,你去超市买东西,你给的是钱,售货员给你的是商品,类型不同,可以用any。...any就不用过多讲解使用方式,和其他类型一样,主要说说泛型的使用 1.在函数中使用 function echo(arg:T):T{ return arg } const result=echo...console.log(say) } } let cat = new Animal('cat'); cat.action('mimi') 实例化Animal的时候,传递的参数是string类型

1.7K1210
您找到你想要的搜索结果了吗?
是的
没有找到

十分钟教你理解TypeScript中的泛型

然而,不要把TypeScript中的泛型错当成any类型来使用——你会在后面看到这两者的不同。 类似C#和Java这种语言,在它们的工具箱里,泛型是创建可复用代码组件的主要手段之一。...在VS Code中配置TypeScript 在计算机中创建一个新文件夹,然后使用VS Code 打开它(如果你跟着从头开始操作,那你已经安装好了)。 在VS Code中,创建一个app.ts文件。...version": "2.0.0", "tasks": [ { "label": "echo", "type": "shell", "command": "tsc", "args...设置好了开发环境,你就可以着手处理TypeScript泛型概念相关的问题了。 找到问题 TypeScript中不建议使用any类型,原因有几点,你可以在本文看到。...这仅仅是使用any类型定义该集合的一种后果罢了。 理解中心思想 刚才使用any类型导致的问题,可以用TypeScript中的泛型来解决。其中心思想是类型安全。

2.2K10

TypeScript 演化史 — 第十章】更好的空值检查 和 混合类

混合类的构造函数 (如果有) 必须有且仅有一个类型为any[]的变长参数, 并且必须使用展开运算符在super(...args)调用中将这些参数传递。 定义完成之后,来研究一些代码。...下面是一个 Timestamped 函数,它在timestamp 属性中跟踪对象的创建日期: type Constructor = new (..args: any[]) => T;...= {}> = new (..args: any[]) => T; type Constructor 是构造签名的别名,该签名描述了可以构造通用类型T的对象的类型,并且其构造函数接受任意数量的任何类型的参数...: any[]) { super(...args); this.tag = null; } }; } 如果在混合类中定义构造函数,那么它必须有一个类型为any[]的rest...比如, 有 X 为对象类型, new (...args: any[]) => X 是一个实例类型为 X 的混合构造函数类型。

2.6K10
领券