【TypeScript教程】# 15:泛型

简介: 【TypeScript教程】# 15:泛型

说明

尚硅谷TypeScript教程(李立超老师TS新课)学习笔记。



泛型

在定义函数或是类时,如果遇到类型不明确就可以使用泛型

比如定义了一个泛型T

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


可以直接调用具有泛型的函数

  1. 不指定泛型,TS 可以自动对类型进行推断
let res = fn(313);


e8702347c12e40138255748d43eb0564.png


  1. 指定泛型
let res2 = fn<string>("kaimo313");


泛型可以同时指定多个:

function fn2<T, K>(a:T, b:K):T {
    console.log(b);
    return a;
}
let res3 = fn2<number, string>(313, "kaimo313");

64f3e4c173214b1895095a623a671a66.png


T extends Inter 表示泛型必须时Inter实现类(子类)

interface inter {
    name: string
}
function fn3<T extends inter>(a: T):string {
    return a.name;
}
fn3({name: "kaimo313"})


给类加泛型

class MyClass<T>{
    name: T;
    constructor(name: T) {
        this.name = name;
    }
}
const mc = new MyClass<string>("kaimo");
目录
相关文章
|
22天前
|
JavaScript Java API
30.【TypeScript 教程】Reflect Metadata
30.【TypeScript 教程】Reflect Metadata
14 4
|
20天前
|
JavaScript
TypeScript 泛型类型
TypeScript 泛型类型
|
20天前
|
JavaScript Java 编译器
TypeScript 泛型
TypeScript 泛型
|
22天前
|
JavaScript 编译器
31.【TypeScript 教程】混入(Mixins)
31.【TypeScript 教程】混入(Mixins)
17 3
|
22天前
|
JavaScript 编译器
35.【TypeScript 教程】编译选项
35.【TypeScript 教程】编译选项
14 2
|
22天前
|
JavaScript 编译器
33.【TypeScript 教程】命名空间
33.【TypeScript 教程】命名空间
18 2
|
8天前
|
JavaScript 安全 编译器
TypeScript 基础学习笔记:泛型 <T> vs 断言 as
TypeScript 基础学习笔记:泛型 <T> vs 断言 as
16 0
|
20天前
|
JavaScript 编译器
typescript 泛型约束
typescript 泛型约束
|
22天前
|
JavaScript 前端开发
37.【TypeScript 教程】TSLint 与 ESLint
37.【TypeScript 教程】TSLint 与 ESLint
14 0
|
22天前
|
JavaScript 编译器 IDE
36.【TypeScript 教程】tsconfig.json 配置
36.【TypeScript 教程】tsconfig.json 配置
11 0