12 Flow的或操作和型別推斷

2021-10-16 17:05:20 字數 859 閱讀 7839

​ 當我們希望乙個變數可以是一種資料型別,也可以是其他指定的資料型別的時候,我們就可以使用flow中的或操作。

語法:

let 變數名 : 資料型別1

| 資料型別2

|...

= 資料初始值 ;

例項**:
//@flow

let a: number | string =10;

a ="123"

;

此時flow檢查變數 a 的型別的時候既可以是 number型別的,也可以是string型別的。因此我們在第三行**將a賦值為字串"123" 後我們執行 npm run flow 就不會報錯,執行結果如下圖所示:

​ 當我們沒有給乙個變數明確的資料型別的時候,flow會根據程式進行判斷該類型別。

//flow中的型別推斷

function

test

(a: number, b: number)

let c: string =

test(1

,2);

上述**中,我們在定義test函式的時候並沒有對返回值的資料型別進行規定,但flow通過對返回的表示式 a+b 中通過a和b都是number型別的,因此推斷出函式的返回值應該也是number型別的。因此我們在用乙個string型別的變數去接受test函式的返回值後執行 npm run flow時就會報錯。報錯結果如下所示:

受test函式的返回值後執行 npm run flow時就會報錯。報錯結果如下所示:

異或操作的應用

1,異或運算的規則 a 0 xor 0 0 b 0 xor 1 1 c 1 xor 0 1 d 1 xor 1 0 2,異或運算的性質 a a xor a 0 b a xor b xor c a xor b xor c c if a xor b c then a xor c a xor a xor ...

結構或大記憶體塊打包的辦法(上1 2)

microsoft visual c 6.0,sp5 結構或大記憶體塊打包的辦法 上1.2 revision history version date creator description 1.0.0.1 2004 2 23 鄭昀草稿 2.借用safearray打包把結構寫入m q佇列 續上1.1...

12 DOM操作的相關案例

需求 開啟網頁時有乙個普通的按鈕,點選當前按鈕顯示乙個背景圖,中心並彈出乙個彈出框,點選x的時候會關閉當前的模態框 如下 彈出 需求 圖如下 如下 按鈕1按鈕2 按鈕3按鈕4 按鈕5 解釋 滑鼠懸停時,current欄變色,這裡用到了排他思想 先把所有按鈕的classname設定為空,然後把我 th...