• Hurry
    2019-07-26
    泛型的好处
    1.函数和类可以支持多种类型,增加的程序的可扩展性
    2.不必写多条函数重载,联合类型声明,增强代码的可读性
    3.灵活控制类型之间的约束

    总结:
    泛型不仅可以保持类型的一致性,又不失程序的灵活性,同时也可以通过泛型约束,控制类型之间的约束。从代码的上来看,可读性,简洁性,远优于函数重载,联合类型声明以及 any 类型的声明。
    展开
    
     2
  • 杨雷16601046650
    2019-11-22
    我这个问题怎么处理
    interface Text {
        <T extends object, K extends keyof T>(o: T, n: K): T[K];
    }
     function test<T extends object, K extends keyof T>(o: T, n: K): T[K] {
        return o[n];
    }

    let test1: Text = test
    test1({a:1},'a')


    // Error:(8, 5) TS2740: Type '<T extends object, K extends keyof T>(o: T, n: K) => T[K]' is missing the following properties from type 'Text': assignedSlot, wholeText, splitText, data, and 62 more.
    展开

    作者回复: Text接口在 lib.dom.d.ts 中已被预定义,换个名字就可以了

    
    
  • 百炼钢
    2019-08-31
    class Log<T> {
        // Static members cannot reference class type parameters.
        // static run(value: T) {
        run(value: T) {
            console.log(value)
            return value
        }
    }

    let log1 = new Log<number>()
    log1.run(1)
    let log2 = new Log<any>();
    let obj = {a:1}
    log2.run(obj)
    log2.run('2')
    log2.run(2.15)

    在我的环境下,默认 new Log() , run() 只接受 string 类型的值, 必须显示声明为 any ,才能接受任意值。
    展开
     1
    
  • 焱焱
    2019-08-29
    建议老师基本类型了之后能够能个课堂小练习,或者弄个应用,这样能够巩固学习的知识,要不然基本上学了理论知识很容易忘。
    
    
我们在线,来聊聊吧