美文网首页TypeScript
TypeScript的泛型基本使用

TypeScript的泛型基本使用

作者: 翟小乙 | 来源:发表于2023-07-05 10:07 被阅读0次
一、什么是泛型

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

二、基本使用
  • 2.1 回顾之前其实就用过的泛型
let arr1:Array<number> = [1,2,3];
let arr2:Array<string> = ['a','b','c'];

这里的 Array<string> 就是使用了泛型
解释一下:

  1. Array是ts的interface(接口)
    interface Array{}
  2. 那么Array后面可以写number或者string,是怎么回事?
    其实是这样的:

interface Array<T>{

}

注意:这里写了一个T,这就解释了:不预先指定具体的类型,而在使用的时候再指定类型的一种特性。

  • 2.2 函数泛型
function fun1<T>( option:T ): T{
    return option;
}
fun1<string>('123');
fun1<number>(123);

这里T是一个标识符,代表一个类型,当然也可以写成任意的(M,U等等),但是一般都写T
当然也可以有多个标识符

function fun2<T,M>( a:T,b:M ) :T {
    return a;
}
fun2<string,number>('1',2);
  • 2.3 需求:函数的参数返回值必须有length属性
function fun3<T extends string>( arg:T ):number {
    return arg.length;
}
fun3<string>('str');

T extends string 表示泛型T必须是string的子类
但是如果需求是:普通字符串或者数组成员也是字符串的,就需要这样写了(联合声明)

function fun5<T extends string | string[]>( arg:T ){

}
fun5<string>('123');
fun5<string[]>(['a','b',]);
  • 2.4 结合interface接口去使用
interface Idata{
    length:number;
}
function fun4<T extends Idata>( arg:T ){

}
fun4<string[]>(['a','b','c']);
fun4<string>('123');
  • 2.5 泛型接口
interface Ires<T>{ 
    data:T;
    name:string;
    age:number;
}

let apple:Ires<string> = {
    data:'123',
    name:"张三",
    age:18
}
  • 2.6 泛型结合class使用
class Person<T>{
    userName:T
    constructor( name:T ){
        this.userName = name;
    }
}
let person = new Person<string>('张三');

相关文章

  • typescript

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

  • 03_TypeScript学习(三)

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

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

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

  • typescript 难点梳理

    1.new关键字在类型中的使用 泛型 在泛型里使用类类型 在TypeScript使用泛型创建工厂函数时,需要引用构...

  • Java-API-集合框架(三)-泛型

    泛型的由来和基本使用 泛型的擦除 泛型类的使用 泛型方法的使用 泛型接口 泛型通配符(?) 通配符? 在api中的...

  • Typescript入门之:泛型

    Typescript 泛型 <> 泛型是为了提高代码的重用性和代码的通用性 使用泛型 泛型其实是将一种或者多种类型...

  • java基础-day13-泛型

    泛型 1. 泛型 1.1 为什么要使用泛型 1.2 泛型的基本格式 1.3 泛型在方法中使用 1.3 泛型在类内的...

  • TypeScript基础入门 - 泛型 - 使用泛型变量

    转载 TypeScript基础入门 - 泛型 - 使用泛型变量 项目实践仓库 为了保证后面的学习演示需要安装下ts...

  • class 类

    基本用法 构造函数和this 继承 抽象类 接口(TypeScript 独有) 属性的封装 泛型

  • TypeScript 06 - 泛型

    基本示例 使用泛型变量 泛型类型 泛型类 泛型约束 1. 基本示例 考虑到组件的可重用性,引入了泛型的概念,可以使...

网友评论

    本文标题:TypeScript的泛型基本使用

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