完整性檢查

2022-07-10 20:45:09 字數 930 閱讀 2683

當我們想窮舉乙個型別的所有可能值時,當可能值過多,不免會遺漏過多的東西。

通常我們窮舉乙個值的所有可能,我們會採用switch或者if else,當然,這是可行的,下面看乙個if else例子

function test(p:1|2)else if(p===2)

}

當p的型別為更多的聯合型別的時候,我們會寫更多的if else

問題來了,聯合型別越長,我們越是容易疏漏某些值,有沒有什麼方法檢測我們是否完整窮舉完了呢?

這就是完整性檢查的作用了。

function nonumber(x:never)

function test(p:1|2)else if(p===2)else

}

never意思是永遠不會出現的型別,看上面的例子,p型別為1|2,由於前面檢測完畢,則p永遠也不會到最後乙個else那裡。

當p為1|2|3的時候,ts編譯器會檢測到執行至最後乙個else時,p不為never,p應該為3,也就是number,會出錯。

另外,不僅僅時是if else,ts編譯器起也會對switch檢測。

還有,你也可以不return,在if else的括號內做任何事情都是可以的!

啟用--strictnullchecks,並且指定乙個返回值型別

function test(p:1|2):1|2

}

會報錯,因為有可能返回undefined。當然這種方式不推薦,有點繁瑣,失去了拓展的可能。

OSSEC文件 完整性檢查

翻譯 完整性檢查 syscheck是ossec內部完整性檢查過程的名稱。它定期執行以檢查是否有任何配置的檔案 或windows上的登錄檔條目 發生了變化。為什麼完整性檢查?有多種型別的攻擊和許多攻擊向量,但是它們都有一種獨特之處 它們留下痕跡,並且總是以某種方式改變系統。從修改一些檔案的病毒到改變核...

php中檢查email完整性

if eregi 0 9a z 0 9a z 0 9a z a z email 在這句話裡,首先是應用了乙個eregi函式,這個函式還算好理解。隨便找本書,就能給你一段解釋 語法 int ereg string pattern,string string,array regs 返回值 整數 陣列 本...

資料庫完整性檢查

為了主動發現資料庫側頁損壞,保證資料庫邏輯和物理完整性,計畫每週六上午 6點,針對生產主庫上的所有系統和使用者資料庫執行 dbcc checkdb 將結果記錄到表中。以下為理論依據 sql server 資料庫可以檢測出頁損壞,此時,具體的表現形式可能為下述三種錯誤的一種 sql server 發現...