タイプスクリプトでのジェネリックスの紹介と使用

ジェネリックスの主な関数、関数またはクラスを定義するときに、型が明確でない場合は、ジェネリックスを使用できます

たとえば、ジェネリック関数を定義すると、Kは任意に取得されます

function fn<K>(a:K) :K{
    
    
	  return a;
	}

ジェネリック関数を直接呼び出すことができます

fn(10); 

不指定泛型,TS自动对类型进行推断,意味着K的类型为number,参数a的类型为number,返回值的类型也为number
fn<string>('hello')

指定泛型为string

複数のジェネリック医薬品の場合

function fn2<T,K>(a:T,b:K):T{
    
    
  console.log(b);
  return a;
}
//最好写上<number,string>
fn2<number,string>(123,'hello')

ジェネリック医薬品の範囲を制限する場合

interface Inter{
    
    
  length:number
}

//T extends Inter表示泛型T必须是Inter实现类(子类)
function fn3<T extends Inter>(a:T):number{
    
    
   return a.length
}

転送

fn3('123')  //字符串有length长度
fn3({
    
    })  //报错

おすすめ

転載: blog.csdn.net/weixin_45389051/article/details/115285376