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

    工欲善其事,必先利其器
  • 相关阅读:
    Javascript笔记部分
    JQuery学习笔记(3)
    WPF中批量进行验证操作
    学习sqlserver的函数方法
    .NET学习笔记(2)
    Asp.Net页面生命周期
    ThreadLocal
    NIO内存映射
    CAS基础和原子类
    Java锁概念基础
  • 原文地址:https://www.cnblogs.com/ccbest/p/10944376.html
Copyright © 2011-2022 走看看