TS 泛型

泛型(宽泛的,不确定的类型)

  • 使用场景:定义一个函数或类时,无法确定要使用的具体类型(返回值、参数、属性的类型不能确定)
  • 泛型使用时相当于一个参数
functiondemo<T>(arg: T): T{
   return arg;
}
// 泛型T可以看做一个变量
demo<number>(10)
demo<string>('你好')
// 基本类型可以不加泛型
demo(true)
demo(10)
泛型结合接口
interface Param<A,B> {
   title: string,
   state: A,
   list: B[]
}

type ListType = {name:string,age:number}
const p1: Param<boolean,ListType> = {
   title: '泛型和接口结合使用',
   state: true,
   list: [
      {name:'张三',age:18},
      {name:'李四',age:16},
   ]
}
泛型继承
// 泛型的继承(对泛型的约束)
function getLength<T extends { length:number }>(arg: T): number{
   return arg.length;
}
getLength([1,2,3,'4']) // 4
getLength('nihao') // 5

function getLength<T extends string | any[]>(arg: T): number{
   return arg.length;
}
getLength([1,2,3,'4']) // 4

// 当使用T[]时,T表示的是数组参数的元素类型
function getLength<T>(arg: T[]): number{
   return arg.length;
}
getLength<string | number>(['张三','李四',10]) // 3
类中使用泛型
// 类中使用泛型
class MyClass<T>{
   prop: T;

   constructor(prop: T){
      this.prop = prop;
   }
}
// 泛型是一个type
type User = {name:string,age:number}
const user1:User = {name:'张三',age:18}
const c1 = new MyClass<User>( user1 )
// 泛型是基本类型
const c2 = new MyClass<string>('张三')

相关推荐

  1. TS类型

    2024-05-04 21:26:04       36 阅读
  2. TS

    2024-05-04 21:26:04       32 阅读
  3. ts之接口和概念

    2024-05-04 21:26:04       38 阅读
  4. <span style='color:red;'>泛</span><span style='color:red;'>型</span>..

    ..

    2024-05-04 21:26:04      61 阅读
  5. <span style='color:red;'>泛</span><span style='color:red;'>型</span>

    2024-05-04 21:26:04      27 阅读
  6. TS学习02 面向对象 类、封装继承、接口、

    2024-05-04 21:26:04       32 阅读
  7. 第壹章第15节 C#和TS语言对比-

    2024-05-04 21:26:04       23 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-04 21:26:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-04 21:26:04       106 阅读
  3. 在Django里面运行非项目文件

    2024-05-04 21:26:04       87 阅读
  4. Python语言-面向对象

    2024-05-04 21:26:04       96 阅读

热门阅读

  1. 基于 V2G 技术的电动汽车实时调度策略

    2024-05-04 21:26:04       30 阅读
  2. CentOS中常用的命令

    2024-05-04 21:26:04       27 阅读
  3. debian下使用的常用软件

    2024-05-04 21:26:04       28 阅读
  4. 机器学习常见概念

    2024-05-04 21:26:04       29 阅读
  5. 流量卡是骗人的吗?

    2024-05-04 21:26:04       26 阅读
  6. STL——map/unordered_map

    2024-05-04 21:26:04       32 阅读
  7. 车载开发-Android Automotive平台

    2024-05-04 21:26:04       34 阅读