美文网首页我爱编程
TypeScript 学习笔记 之 泛型

TypeScript 学习笔记 之 泛型

作者: 一半晴天 | 来源:发表于2018-03-05 22:34 被阅读21次

泛型函数

TS 泛型函数示例:

function identify<T>(arg:T):T{
  return arg;
}

上面的函数调用时:
1)显式指定类型: identify<string>("myString")

  1. 自动推断: identify("myString")

泛型类型:

  1. 写法1:let myIdentify: <T>(arg:T) => T= identify;
  2. 写法2: let myIdentify: {<T>(arg:T):T} = identify;

泛型接口

从单函数接口:

interface GenericIdentifyFn{
   <T>(arg:T):T;
}
// 使用
let myIdentify:GenericIdentifyFn = identify;

到泛型参数是整型接口的泛型。

interface GenericIdentifyFn<T>{
}
// 使用
let myIdentify: GenericIdentifyFn<number> = identify;

泛型类

示例如下:

class GenericNumber<T>{
    zeroValue:T;
    add:  (x:T, y: T) => T;
}
let gm = new GenericNumber<number>();

带约束的泛型

示例:

interface ActionMenu{
  title:string
}

function showActionMenus<T extends ActionMenu>(menus:Array<T>){
}

泛型约束中的类型参数

示例:

function getProperty(T, K extends keyof T>(obj:T,key:K){
   return obj[key];
}

上例中,将 K 限制为 T 对象的属性键名。

泛型中使用Class 类型

示例:
通过 c:{new():T;} 限制参数应该为返回某类型对象的构造函数。

class Animal{}
class Dog extends Animal{}
class Cat extends Animal{}

function createAnimal<A extends Animal>(c: new() =>A):A{
  return new c();
}

相关文章

  • TypeScript 学习笔记 之 泛型

    泛型函数 TS 泛型函数示例: 上面的函数调用时:1)显式指定类型: identify ("myString") ...

  • typescript

    title: typescript学习tags: typescript学习 [toc] 泛型 基本使用 两种使用方...

  • TypeScript学习之——泛型(个人笔记)

    介绍 泛型:在定义函数,类,接口的时候没有指定具体的类型,等到使用的时候再指定具体的类型。泛型的使用:将在定义时不...

  • TypeScript 学习笔记4 泛型

    1.泛型 1.1 泛型函数 1.2 泛型类 1.3 泛型接口 Typescript从0到1-学习视频教程-培训课程...

  • Typescript 学习笔记七:泛型

    中文网:https://www.tslang.cn/官网:http://www.typescriptlang.or...

  • typeScript学习笔记4 泛型

    泛型:不预先确定数据类型,具体的类型在使用的时候才确定。好处:函数和类可以轻松支持多种类型;不必写多条函数重载;灵...

  • TypeScript基础入门 - 泛型 - 泛型类

    转载 TypeScript基础入门 - 泛型 - 泛型类 项目实践仓库 为了保证后面的学习演示需要安装下ts-no...

  • typescript学习-泛型

    一. 泛型基础 1. 泛型函数 定义 使用(使用时应注意,泛型应被当做可能的所有类型,例如number不会存在le...

  • TypeScript学习——泛型

    泛型 泛型是指在定义函数、接口、或类的时候,不预先指定具体的类型,而在使用的时候再指定类型的一种特性。 在这个例子...

  • TypeScript 之泛型

    介绍 软件工程中,我们不仅要创建一致的定义良好的 API,同时也要考虑可重用性。组件不仅能够支持当前的数据类型,同...

网友评论

    本文标题:TypeScript 学习笔记 之 泛型

    本文链接:https://www.haomeiwen.com/subject/nvjhfftx.html