当前位置: 首页 > news >正文

关于鸿蒙开发中泛型的介绍

泛型可以让【函数】等,与多种【不同的类型】一起工作,灵活可复用。

通俗一点就是:泛型是 可变 的。

泛型函数

语法

function 函数名<Type>(temp:Type):Type{
  return temp
}

函数名<string>('123')
函数名<number>(1)

泛型约束

之前的类型参数,可以传递任何类型,没有限制。

如果希望有限制 → 泛型约束

语法

interface  接口 {
  属性:类型
}
// 传入的类型必须要有 接口中的属性
function 函数<Type extends 接口>() {}

注意:传入的类型必须要有 接口中的属性 

实例

interface  ILength {
  length:number
}

function  fn<T extends ILength>(param:T){
  console.log("",param.length)
}

多个泛型参数

日常开发中,如果有需要,可以添加多个 类型变量

function func<T, T1>(param: T, param1: T1) {
  console.log('参数1', param)
  console.log('参数2', param1)
}

func<string, number>('大白菜', 99)
func<string[], boolean[]>(['小脑虎'], [false])

泛型接口

定义接口的时候,结合泛型定义,就是泛型接口。

语法

interface 接口<Type>{
  // 内部使用Type
}

实例

interface IdFunc<Type> {
  id: (value: Type) => Type
  ids: () => Type[]
}

let obj: IdFunc<number> = {
  id(value) {
    return value
  },
  ids() {
    return [1, 3, 5]
  }
}

泛型类

定义类的时候,结合泛型定义,就是泛型类。

语法

class  类名<Type>{
//   内部可以使用Type
}

实例

class Person<T> {
  id: T

  constructor(id: T) {
    this.id = id
  }

  getId(): T {
    return this.id
  }
}
// 使用
let p = new Person<number>(10)

http://www.dtcms.com/a/11745.html

相关文章:

  • java代码中<>符号的含义
  • Swift编译加速:精通编译器标志的高效使用
  • 分布式缓存———数据一致性问题
  • 【Rust光年纪】细数 Rust 语言必备库:探索点对点网络、嵌入式数据库和客户端操作
  • 低代码: 组件库测试之渲染和元素获取,触发事件,更新表单,验证事件以及异步请求
  • 有源音箱申请Hi-Res认证指南
  • 空状态设计教程:连接用户体验的桥梁
  • String的不可变性
  • 2020 位示图
  • 基于 STM32、OpenCV 和 Qt 的智能嵌入式考勤系统设计思路(代码示例)
  • 【FastAPI 】FastAPI 模板:提供静态文件
  • ARR 竟然超过 150 万美元!斯坦福都在使用的 AI 学术搜索引擎 Consensus获 USV 领投的 1100 万美元。
  • python从入门到精通:数据容器
  • 人员离岗识别摄像机
  • springboot过滤器、拦截器相关知识
  • 【vue教程】七. Vue 的动画和过渡
  • 成为创作者的第1024天:成长与技术积累的旅程
  • Spring 中XmlWebApplicationContext
  • MySQL:从入门到放弃
  • PyTorch深度学习实战(25)—— 使用向量化思想解决实际问题
  • R8;RRRRRRRR;穿膜肽R8;八聚精氨酸;148796-86-5
  • 【Java-异常】
  • ansible --------拓展
  • MCE IPv6简介
  • ETAS工具链自动化实战指南<一>
  • 强!小目标检测全新突破!检测速度快10倍,GPU使用减少73.4%
  • 信息学奥赛初赛天天练-70-NOIP2016普及组-基础题1-二进制、二进制状态表示、二进制加法、字符、字符数组、字符串、空串
  • python之matplotlib (3 坐标轴设置)
  • 听说部门来了个00后测试开发,一顿操作给我整懵了
  • 回不去的旧时光---老屋秋思