zoukankan      html  css  js  c++  java
  • 012--TypeScript之类型推断

    类型推断最佳通用类型

    let x = [0, 1, null]
    
    class Animal {
      numLegs: number
    }
    
    class Bee extends Animal {
    
    }
    
    class Lion extends Animal {
    
    }
    
    let zoo = [new Bee(), new Lion()]
    //上述例子我们想让zoo推断为Animal数组类型
    //但是这个数组中没有对象明确是Animal类型的
    //因此zoo不能推断出
    //可以明确声明出期望的类型
    let zoo1: Animal[]  = [new Bee(), new Lion()]
    //如果我们没有声明,类型推断会根据Bee和Lion推断出联合声明类型

    类型推断之上下文类型

    window.onmousedown = function (mouseEvent) {
      //console.log(mouseEvent.clickTime)//报错
      //mouseEvent上没有clickTime属性
      //TS会根据window.mousedown推断出mouseEvent类型
    }
    //我们可以指出mouseEvent类型
    window.onmousedown = function (mouseEvent :any) {
      console.log(mouseEvent.clickTime)
    }
    class Animal {
      numLegs: number
    }
    
    class Bee extends Animal {
    
    }
    
    class Lion extends Animal {
    
    }
    
    function createZoo(): Animal[] {
      return [new Bee(), new Lion()]
      //这个例子最佳通用类型有三个分别是
      //Animal,Lion,Bee类型
      //在这里我们使用Animal作为最佳通用类型
    }

    2019-05-29  16:02:13

    工欲善其事,必先利其器
  • 相关阅读:
    (转载)李开复:我在硅谷看到的最前沿科技趋势
    1019. 数字黑洞 (20)
    1018. 锤子剪刀布 (20)
    1017. A除以B (20)
    1016. 部分A+B (15)
    1015. 德才论 (25)
    1013. 数素数 (20)
    1014. 福尔摩斯的约会 (20)
    1012. 数字分类 (20)
    1011. A+B和C (15)
  • 原文地址:https://www.cnblogs.com/ccbest/p/10944376.html
Copyright © 2011-2022 走看看