ts中泛型、泛型方法、泛型类、泛型接口

更新时间:2023-07-08 14:34:45 阅读: 评论:0

ts中泛型、泛型⽅法、泛型类、泛型接⼝
什么是泛型呢?我们可以理解为泛型就是在编译期间不确定⽅法的类型(⼴泛之意思),在⽅法调⽤时,由程序员指定泛型具体指向什么类型。泛型在传统⾯向对象编程语⾔中是极为常见的,ts中当然也执⾏泛型,如果你理解c#或java中的泛型,相信本篇理解起来会很容易。
泛型函数、泛型类、泛型接⼝。
08_generic.ts
风俗作文/*
* ts中泛型
* 泛型就是在编译期间不确定⽅法的类型(⼴泛之意思),在⽅法调⽤时,由程序员指定泛型具体指向什么类型
*/
/*
* ts中泛型
*    泛型就是在编译期间不确定⽅法的类型(⼴泛之意思),在⽅法调⽤时,由程序员指定泛型具体指向什么类型
*/
备孕吃什么水果好
//1 泛型函数
/**
* 获取数组中最⼩值(数字)
* @param {number[]} arr
* @returns {number}
*/
function  getMinNumber(arr:number[]):number{
var min=arr[0];
arr.forEach((value)=>{
if(value<min){
min=value;
}
});
return min;
}
专长/**
* 获取数组中最⼩值(字符串)
* @param {number[]} arr
* @returns {number}
生意祝福语
*/
function  getMinStr(arr:string[]):string{
var min=arr[0];
arr.forEach((value)=>{
if(value<min){
min=value;
}
});
return min;
}
console.log(getMinNumber([1, 3, 5, 7, 8]));//1
console.log(getMinStr(["tom","jerry","jack","sunny"]));//jack
/**
* 获取数组中最⼩值 (T泛型通⽤)
* @param {T[]} arr
* @returns {T}
*/
function getMin<T>(arr:T[]):T{
var min=arr[0];
arr.forEach((value)=>{
if(value<min){
min=value;
}
});
return min;
}
console.log(getMin([1, 3, 5, 7, 8]));
console.log(getMin(["tom","jerry","jack","sunny"]));
//2 泛型类
class GetMin<T>{
arr:T[]=[];
add(ele:T){
this.arr.push(ele);
}
min():T{
var min=this.arr[0];
this.arr.forEach(function (value) {
if(value<min){
min=value;
}
});
return min;
}
}
var gm1= new  GetMin<number>();
gm1.add(5);
gm1.add(3);
gm1.add(2);
gm1.add(9);
console.log(gm1.min());
var gm2= new  GetMin<string>();
gm2.add("tom");
gm2.add("jerry");
gm2.add("jack");
gm2.add("sunny");
console.log(gm2.min());
/**
* 3 泛型函数接⼝
*/
interface ConfigFn{
<T>(value:T):T;
}
var getData:ConfigFn=function<T>(value:T):T{
return value;
}
getData<string>('张三');南麂岛
/
/ getData<string>(1243);  //错误
// 类似  Map<String,Object> Param  接⼝
interface Param{
[index:string]:any
}
//4 泛型类接⼝
/**
* page分页对象
*/
class Page{
private currentPage:number=1; //当前页码默认1
private pageSize:number=10;//每页条数默认为10
private sortName:string; //排序字段
private sortOrder:string="asc"; // 排序规则 asc | desc 默认为asc正序    constructor(param:Param){
if(param["currentPage"]){
this.currentPage=param["currentPage"];
业务流程外包}
if(param["pageSize"]){
this.pageSize=param["pageSize"];
}
if(param["sortName"]){
this.sortName=param["sortName"];
}
if(param["sortOrder"]){
this.sortOrder=param["sortOrder"];
}
}
public    getStartNum():number{
return  (this.currentPage-1)*this.pageSize;
}
}
class Ur{
id:number;//id主键⾃增
name:string;//姓名风有几画
x:number;//性别 1男 2⼥
age:number;//年龄
city:string;//城市
describe:string;//描述
}
//泛型接⼝清明节什么时候
interface  BaDao<T> {
findById(id:number):T;//根据主键id查询⼀个实体
findPageList(param:Param,page:Page):T[];//查询分页列表    findPageCount(param:Param):number;//查询分页count
save(o:T):void;//保存⼀个实体
update(o:T):void;//更新⼀个实体
deleteById(id:number);//删除⼀个实体
}
/**
* 接⼝实现类
*/
class UrDao<Ur> implements BaDao<Ur>{
findById(id:number):Ur{
return null;
}
findPageList(param:Param,page:Page):Ur[]{
return [];
}
findPageCount(param:Param):number{
return0;
}
save(o:Ur):void{
}
update(o:Ur):void{
}
deleteById(id:number){
}
}

本文发布于:2023-07-08 14:34:45,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1085654.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:泛型   默认   查询   实体   指向   类型   程序员   指定
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图