Typescript泛型

作者: 梦安web开发 | 来源:发表于2022-03-13 00:09 被阅读0次

    泛型可以创建可重用的组件,一个组件可以支持多种类型的数据。 这样就可以以自己的数据类型来使用组件。function 函数名<T>(arg:T):T

    function identity<T>(arg: T): T {
        return arg;
    }
    
    泛型类型

    泛型函数的类型与非泛型函数的类型没什么不同,只是有一个类型参数在最前面,像函数声明一样:

    function identity<T>(arg: T): T {
        return arg;
    }
    
    let myIdentity: <T>(arg: T) => T = identity;
    

    我们也可以使用不同的泛型参数名,只要在数量上和使用方式上能对应上就可以。

    function identity<T>(arg: T): T {
        return arg;
    }
    
    let myIdentity: <U>(arg: U) => U = identity;
    

    泛型接口,我们看看下面的例子:

    interface GenericIdentityFn {
        <T>(arg: T): T;
    }
    
    function identity<T>(arg: T): T {
        return arg;
    }
    
    let myIdentity: GenericIdentityFn = identity;
    

    除了泛型接口,我们还可以创建泛型类。 注意,无法创建泛型枚举和泛型命名空间。

    泛型类

    泛型类看上去与泛型接口差不多。 泛型类使用( <>)括起泛型类型,跟在类名后面。

    class GenericNumber<T> {
        zeroValue: T;
        add: (x: T, y: T) => T;
    }
    
    let myGenericNumber = new GenericNumber<number>();
    myGenericNumber.zeroValue = 0;
    myGenericNumber.add = function(x, y) { return x + y; };
    

    相关文章

      网友评论

        本文标题:Typescript泛型

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