本文主要是介绍关于鸿蒙开发中泛型的介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
泛型可以让【函数】等,与多种【不同的类型】一起工作,灵活可复用。
通俗一点就是:泛型是 可变 的。
泛型函数
语法
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) => Typeids: () => Type[]
}let obj: IdFunc<number> = {id(value) {return value},ids() {return [1, 3, 5]}
}
泛型类
定义类的时候,结合泛型定义,就是泛型类。
语法
class 类名<Type>{
// 内部可以使用Type
}
实例
class Person<T> {id: Tconstructor(id: T) {this.id = id}getId(): T {return this.id}
}
// 使用
let p = new Person<number>(10)
这篇关于关于鸿蒙开发中泛型的介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!