美文网首页
TypeScript 泛型

TypeScript 泛型

作者: 一瓣山河 | 来源:发表于2019-01-23 22:56 被阅读8次

泛型

泛型(Generics)是指在定义函数、接口或类的时候,不预先指定具体的类型,而在使用的时候再指定类型的一种特性。

例子:实现一个函数 createArray 创建一个指定长度的数组,并初始化

例子中,我们使用数组泛型来指定返回值的数类型。 但它有个缺陷,它并没有明确定义返回值的类型,数组中的每一个元素的类型是any, 但是我们期望返回数组中的元素与value 的类型一致。所以,我们修改代码为:

 调用的时候,可以明确指定T类型,也可以不指定,而根据类型推论推断出来:

createArray<string>(3,'1');   // [1, 1, 1]

createArray(3,'1');   // [1, 1, 1]

定义泛型的时候,可以同时定义多个类型参数。在使用泛型的时候,由于不知道具体的类型,所以不能随意操作它的属性和方法,不然编译会报错。

泛型约束

在函数内部使用函数变量的时候,可以对泛型进行约束,只允许传入具有某些特定属性或方法的变量。例:

例中,使用了extends 约束了泛型T必须符合接口LengthWise 的形状,必须包含length 属性。如果函数入参arg 不包含length 属性,就会编译报错。

泛型接口

使用接口的方式定义函数传参需要的形状:

使用泛型接口定义函数传参需要的形状:

还可以把泛型参数提前到接口名上:

在使用泛型接口的时候,需要定义泛型的类型。

泛型类

使用泛型对类的结构进行定义:

相关文章

  • 2020-11-05Typescript(2.2)

    泛型 Generics---typeScript中最难的一部分 泛型 Generics---约束泛型 泛型 Gen...

  • TS 泛型+装饰器

    typescript 中的泛型 泛型的定义泛型函数泛型类泛型接口 泛型:软件工程中,我们不仅要创建一致的定义良好的...

  • bunny笔记|TS基础(2):泛型函数、泛型约束、在泛型约束中

    01 typescript的操纵类型 02 03 04 泛型约束 05 在泛型约束中使用类型参数 06 在泛型中使...

  • 03_TypeScript学习(三)

    一. TypeScript枚举类型 二. 枚举类型的值 三. 认识泛型 四. 泛型实现类型参数化 五. 泛型的基本...

  • TypeScript 学习笔记4 泛型

    1.泛型 1.1 泛型函数 1.2 泛型类 1.3 泛型接口 Typescript从0到1-学习视频教程-培训课程...

  • typescript

    title: typescript学习tags: typescript学习 [toc] 泛型 基本使用 两种使用方...

  • TypeScript 泛型

    泛型函数 使用 数组 类 泛型约束

  • TypeScript泛型

    有时候编程还要考虑它的复用性,很多时候不需要指定它的类型,或者同样的方法逻辑 但是入参和出差的类型不同。这个时候就...

  • TypeScript(泛型)

    泛型 软件工程中,我们不仅要创建一致的定义良好的API,同时也要考虑可重用性。 组件不仅能够支持当前的数据类型,同...

  • TypeScript -- 泛型

    1. 很多时候我们希望一个函数或者一个类可以支持多种数据类型,有很大的灵活性2.泛型:不预先确定的数据类型,具体的...

网友评论

      本文标题:TypeScript 泛型

      本文链接:https://www.haomeiwen.com/subject/agwsjqtx.html