泛型

作者: 回不去的那些时光 | 来源:发表于2022-08-01 16:21 被阅读0次

    泛型的好处

    // 好处一: 不指定类型,传入什么类型就是什么类型
    function echo<T>(arg: T): T {
        return arg;
    }
    const str: string = "abc";
    const result = echo(str);
    
    // 可以传入多个值
    function swap<T, U>(tuple: [T, U]): [U, T] {
        return [tuple[1], tuple[0]];
    }
    const result2 = swap(['abc', 123]);
    

    在泛型定义时使用变量的属性 length

    在定义泛型时,由于不知道泛型到底是什么类型的,所以在定义时是无法使用变量的属性的

    • 方式一:直接告诉 ts 我是数组类型的
    function identityStr<T>(str: T[]): T[] {
        console.log(str, str.length);
        return str;
    }
    
    • 方式二:告诉 ts 我有 length 属性
    interface withLength {
        length: number;
    }
    
    function identityStr<T extends withLength>(str: T): T {
        console.log(str, str.length);
        return str;
    }
    

    相关文章

      网友评论

          本文标题:泛型

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