亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

TypeScript使用strictnullcheck實戰(zhàn)解析

 更新時間:2023年08月01日 14:33:32   作者:RDDcoding  
這篇文章主要為大家介紹了TypeScript使用strictnullcheck實戰(zhàn)解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

strictnullcheck(嚴格的null檢查)

應(yīng)該使用strictnullcheck TypeScript編譯器標志嗎?

空指針是最常見的bug之一,而通過strictnullcheck TypeScript編譯器標志可以在很大程度上避免空指針。因為strictnullcheck標志在TypeScript 2時添加的,所以它的使用還沒有那么廣泛。截至2017年9月,Angular項目和typeORM項目中使用了該標志,而VSCode、RxJS、ionor或Babylon.js都沒有使用該標志。此外,新建一個TypeScript項目時strictnullcheck并不默認開啟,以保證向后兼容,并保持TypeScript是JavaScript的超集。

如果你準備編寫一個新TypeScript項目,或者有時間將strictnullcheck標志引入到現(xiàn)有的項目中,我建議你這樣做。你的應(yīng)用會因此具備更高的安全性,使用嚴格的null檢查也不會打亂代碼,因應(yīng)用程序本應(yīng)包含這些檢查。缺點是新開發(fā)人員還需要學(xué)習(xí)一個概念。對我來說,利大于弊,所以我建議打開嚴格的空檢查。

嚴格的空檢查

嚴格的空檢查的一個例子是:

tsconfig.json

{
  "compilerOptions": {
    "module": "commonjs",
    "target": "es5",
    "noImplicitAny": true,
    "strictNullChecks": true,
    "outDir": "./dist"
  },
  "include": [
    "src/**/*"
  ]
}

src/user.ts

interface User {
  name: string;
  age?: number;
}
function printUserInfo(user: User) {
  console.log(`${user.name}, ${user.age.toString()}`)
  // => error TS2532: Object is possibly 'undefined'.
  console.log(`${user.name}, ${user.age!.toString()}`)
  // => OK, you confirm that you're sure user.age is non-null.
  // => 好的,你已經(jīng)確認user.age是非空的。
  if (user.age != null) {
    console.log(`${user.name}, ${user.age.toString()}`)
  }
  // => OK, the if-condition checked that user.age is non-null.
    // => 好的,if條件檢查了user.age是非空的。
  console.log(user.name + ', ' + user.age != null ? user.age.toString() : 'age unknown');
  // => Unfortunately TypeScript can't infer that age is non-null here.
  // => 不幸的是TypeScript不能在這里推斷年齡是非空的。(譯注:截止至2019年7月16日,TS依舊會報此錯)
}

如上所述:

  • 感嘆號表示你確信(例如,通過在代碼中的某個地方執(zhí)行檢查)可能為空的變量實際上是非空的。
  • 如果執(zhí)行If條件檢查, TypeScript可以推斷某些內(nèi)容是非空的。
  • 然而,對于三元運算符來說,不幸的是情況并非如此。

翻譯自原文:https://www.tsmean.com/articles/learn-typescript/strict-null-checks-best-practice/

以上就是TypeScript使用strictnullcheck實戰(zhàn)解析的詳細內(nèi)容,更多關(guān)于TypeScript使用strictnullcheck的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • TypeScript使用strictnullcheck實戰(zhàn)解析

    TypeScript使用strictnullcheck實戰(zhàn)解析

    這篇文章主要為大家介紹了TypeScript使用strictnullcheck實戰(zhàn)解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • TypeScript類型any never void和unknown使用場景區(qū)別

    TypeScript類型any never void和unknown使用場景區(qū)別

    這篇文章主要為大家介紹了TypeScript類型any never void和unknown使用場景區(qū)別,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • 詳解什么是TypeScript里的Constructor?signature

    詳解什么是TypeScript里的Constructor?signature

    這篇文章主要介紹了什么是TypeScript里的Constructor?signature詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • TypeScript手寫一個簡單的eslint插件實例

    TypeScript手寫一個簡單的eslint插件實例

    這篇文章主要為大家介紹了TypeScript手寫一個簡單的eslint插件實例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • TypeScript類型級別和值級別示例詳解

    TypeScript類型級別和值級別示例詳解

    這篇文章主要為大家介紹了TypeScript類型級別和值級別示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • TypeScript防抖節(jié)流函數(shù)示例詳解

    TypeScript防抖節(jié)流函數(shù)示例詳解

    這篇文章主要為大家介紹了TypeScript防抖節(jié)流函數(shù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • TypeScript類型操作之字符串處理功能詳解

    TypeScript類型操作之字符串處理功能詳解

    這篇文章主要為大家介紹了TypeScript類型操作之字符串處理功能詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • typescript快速上手的基礎(chǔ)知識篇

    typescript快速上手的基礎(chǔ)知識篇

    靜態(tài)類型的typescript與傳統(tǒng)動態(tài)弱類型語言javascript不同,在執(zhí)行前會先編譯成javascript,因為它強大的type類型系統(tǒng)加持,能讓我們在編寫代碼時增加更多嚴謹?shù)南拗?。注意,它并不是一門全新的語言,所以并沒有增加額外的學(xué)習(xí)成本
    2022-12-12
  • TypeScript?類型級別示例介紹

    TypeScript?類型級別示例介紹

    這篇文章主要為大家介紹了TypeScript?類型級別示例介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • typescript 支持與本地調(diào)試配置詳解

    typescript 支持與本地調(diào)試配置詳解

    這篇文章主要為大家介紹了typescript 支持與本地調(diào)試配置詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09

最新評論