<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      hackftz

      bits change world

      導航

      深入理解TypeScript——文檔篇之類型推斷

      Posted on 2020-10-13 22:31  hackftz  閱讀(522)  評論(0)    收藏  舉報

      一、基礎

      TypeScript里,在有些沒有明確指出類型的地方,類型推論會幫助提供類型

      let x = 3; // let x: number
      

      二、最佳通用類型

      計算通用類型算法會考慮所有的候選類型,并給出一個兼容所有候選類型的類型。

      // demo 1
      let x = [0, 1, null, 'haha']; // let x: (string | number | null)[]
      
      // demo 2
      class Rhino {
        constructor() {
          
        }
      }
      
      class Elephant {
        constructor() {
          
        }
      }
      
      class Snake {
        constructor() {
          
        }
      }
      
      let zoo = [new Rhino(), new Elephant(), new Snake()]; // let zoo: (Rhino | Elephant | Snake)[]
      

      三、上下文類型

      TypeScript類型推論也可能按照相反的方向進行。 這被叫做“按上下文歸類”。按上下文歸類會發生在表達式的類型與所處的位置相關時。
      TypeScript類型檢查器使用Window.onmousedown函數的類型來推斷右邊函數表達式的類型。因此,就能推斷出 mouseEvent參數的類型了。
      如果函數表達式不是在上下文類型的位置, mouseEvent參數的類型需要指定為any,這樣也不會報錯了。

      window.onmousedown = function(mouseEvent) { // (parameter) mouseEvent: any
      
          console.log(mouseEvent.button);  //<- Error
      };
      

      注:如果上下文類型表達式包含了明確的類型信息,上下文的類型被忽略。

      // test 1
      window.onmousedown = function(mouseEvent: any) {
          console.log(mouseEvent.button);  //<- Now, no error is given
      };
      
      // test 2
      interface Name {
        button: string;
      }
      
      function App() {
        window.onmousedown = function(mouseEvent: Name) { // TypeScript類型檢查器使用Window.onmousedown函數的類型來推斷右邊函數表達式的類型。 因此,就能推斷出 mouseEvent參數的類型了。 
          console.log(mouseEvent.button);  //<- Error
      };
      // 不能將類型“(mouseEvent: Name) => void”分配給類型“((this: //GlobalEventHandlers, ev: MouseEvent) => any) & ((this: Window, ev: MouseEvent) => any)”。
      // 不能將類型“(mouseEvent: Name) => void”分配給類型“(this: GlobalEventHandlers, ev: MouseEvent) => any”。
      // 參數“mouseEvent”和“ev” 的類型不兼容。
      // 不能將類型“MouseEvent”分配給類型“Name”。
      // 屬性“button”的類型不兼容。
      
      主站蜘蛛池模板: 一区二区精品久久蜜精品| 亚洲欧美在线一区中文字幕| 国产精品美女一区二区三| 国产清纯在线一区二区| 亚洲2017天堂色无码| 国产精品伦人一久二久三久 | 绯色蜜臀av一区二区不卡| 人人爽亚洲aⅴ人人爽av人人片| 国产精品亚洲а∨天堂2021| 国产成人拍国产亚洲精品| 亚洲第一狼人成人综合网| 免费人妻无码不卡中文18禁| 国产色无码专区在线观看| 亚洲av第一区二区三区| 国产精品青草久久久久福利99| 婷婷综合亚洲| 国产精品午夜福利视频| 国产午夜福利视频在线观看| 又大又粗又爽的少妇免费视频 | 临桂县| 狠狠色噜噜狠狠狠狠蜜桃| 国语自产精品视频在线看| 少妇xxxxx性开放| 中文字幕久久精品波多野结| 四虎成人精品永久网站| 成人亚洲欧美成αⅴ人在线观看| 精品乱人码一区二区二区| 亚洲欧美人成网站在线观看看| 狠狠色丁香婷婷久久综合五月| 国产精品自偷一区在线观看| 亚洲精品成人福利网站| 亚洲精品一区久久久久一品av| 国产一区二区三区精品综合| 国产精品青草久久久久福利99| 国产精品一级久久黄色片| 欧美黑人巨大xxxxx| 国内少妇偷人精品免费| 97亚洲色欲色欲综合网| 风流少妇又紧又爽又丰满| 麻豆一区二区中文字幕| 精品999日本久久久影院|