最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

strictnullcheck(嚴(yán)格的null檢查)

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

空指針是最常見(jiàn)的bug之一,而通過(guò)strictnullcheck TypeScript編譯器標(biāo)志可以在很大程度上避免空指針。因?yàn)?code>strictnullcheck標(biāo)志在TypeScript 2時(shí)添加的,所以它的使用還沒(méi)有那么廣泛。截至2017年9月,Angular項(xiàng)目和typeORM項(xiàng)目中使用了該標(biāo)志,而VSCode、RxJS、ionor或Babylon.js都沒(méi)有使用該標(biāo)志。此外,新建一個(gè)TypeScript項(xiàng)目時(shí)strictnullcheck并不默認(rèn)開(kāi)啟,以保證向后兼容,并保持TypeScript是JavaScript的超集。

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

嚴(yán)格的空檢查

嚴(yán)格的空檢查的一個(gè)例子是:

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)確認(rèn)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依舊會(huì)報(bào)此錯(cuò))
}

如上所述:

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

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

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

相關(guān)文章

最新評(píng)論

甘南县| 措美县| 临桂县| 吴川市| 枣强县| 乳山市| 万盛区| 大理市| 印江| 晋中市| 怀安县| 南皮县| 鄂伦春自治旗| 黔东| 石渠县| 眉山市| 泰州市| 和静县| 临高县| 封开县| 壶关县| 乐山市| 桐梓县| 上饶市| 孙吴县| 灵石县| 柳江县| 舟曲县| 莒南县| 叙永县| 德令哈市| 都兰县| 方正县| 惠来县| 平凉市| 古田县| 潮安县| 新乐市| 虹口区| 淮南市| 桐梓县|