自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

微軟發(fā)布 TypeScript 5.6:完善空值合并和真值檢查

新聞
微軟公司9 月 9 日發(fā)布博文,宣布推出 TypeScript 5.6 正式版,主要進一步完善空值合并與真值檢查,支持禁用類型檢查等等。

9 月 10 日消息,微軟公司昨日(9 月 9 日)發(fā)布博文,宣布推出 TypeScript 5.6 正式版,主要進一步完善空值合并與真值檢查,支持禁用類型檢查等等。

TypeScript 簡介

IT之家注:TypeScript 是一種在 JavaScript 基礎上通過添加類型語法構建的語言。

類型(Types)用于描述開發(fā)者對變量、參數(shù)和函數(shù)的形態(tài),而 TypeScript 類型檢查器可以在開發(fā)者運行代碼之前,幫助篩查諸如拼寫錯誤、遺漏屬性以及錯誤的函數(shù)調用等問題。

TypeScript 編輯器還引入了自動補全、代碼導航和重構等功能,用戶可以在 Visual Studio 和 VS Code 等編輯器中體驗。

使用命令

用戶可以通過以下命令使用 npm 開始使用 TypeScript:

npm install -D typescript

或者可以通過 NuGet 方式獲取。

新版變化

禁止使用空值合并(Nullish)與真值檢查(Truthy Checks)

TypeScript 5.6 繼續(xù)完善檢查“可疑代碼”,現(xiàn)在能夠在發(fā)現(xiàn)表達式計算結果始終為 TRUE 時拋出錯誤,如正則表達式,函數(shù)表達式等:

if (/0x[0-9a-f]/) {
//  ~~~~~~~~~~~~
// error: This kind of expression is always truthy.
}
if (x => 0) {
//  ~~~~~~
// error: This kind of expression is always truthy.
}
function isValid(value: string | number, options: any, strictness: "strict" | "loose") {
    if (strictness === "loose") {
        value = +value
    }
    return value < options.max ?? 100;
    //     ~~~~~~~~~~~~~~~~~~~
    // error: Right operand of ?? is unreachable because the left operand is never nullish.
}
if (
    isValid(primaryValue, "strict") || isValid(secondaryValue, "strict") ||
    isValid(primaryValue, "loose" || isValid(secondaryValue, "loose"))
) {
    //                    ~~~~~~~
    // error: This kind of expression is always truthy.
}

通過啟用 ESLint 的 no-constant-binary-expression 規(guī)則,同樣可以實現(xiàn)類似效果,你可以在他們的博客文章中看到部分成果。

然而,TypeScript 新增的檢查與 ESLint 規(guī)則并非完全重疊,并且微軟認為將這些檢查內置于 TypeScript 本身具有很大價值。

Iterator Helper 方式

JavaScript 中存在可迭代對象(可以通過調用 [Symbol.iterator]() 來遍歷的對象)和迭代器(具有 next () 方法的對象,我們可以調用該方法以在遍歷過程中嘗試獲取下一個值)的概念。

Iterable 和 IterableIterator 在 JavaScript 中隨處可見,但許多人反饋自己懷念 Array 上的方法,比如 map 、 filter ,出于某種原因還有 reduce 。

function* positiveIntegers() {
    let i = 1;
    while (true) {
        yield i;
        i++;
    }
}
const evenNumbers = positiveIntegers()map(x = x * 2)
// Output
//    2
//    4
//    6
//    8
//   10
for (const value of evenNumbers.take(5)) {
    console.log(value)
}

這就是為什么最近在 ECMAScript 中提出了一項提案,要將 Array 中的許多方法(及更多)添加到 JavaScript 中生成的大多數(shù) IterableIterator 上。

責任編輯:龐桂玉 來源: IT之家
相關推薦

2024-07-30 10:27:10

TypeScript配置TS

2022-09-21 13:44:59

TypeScript微軟

2020-08-23 09:16:46

Linux文件合并和排序

2020-08-24 17:26:09

Linux合并文件排序文件

2020-10-18 10:47:22

空值合并運算符 '??

2011-05-25 16:44:01

JavaScriptCSS

2009-03-13 08:53:48

微軟智能機平臺

2023-03-17 07:05:41

TypeScriptJSDoc 功能

2012-10-08 09:15:57

JavaScriptJSTypeScript

2021-04-29 08:27:06

druidundertowMetrics

2021-03-19 07:03:39

Windows 10X操作系統(tǒng)微軟

2016-10-31 14:57:55

Python單元測試assertTrue

2013-04-10 13:52:14

2017-01-13 23:06:45

swiftios

2009-11-18 09:25:15

Opera10.10 Unite功能

2013-10-14 14:24:54

RedHat紅帽RHEL

2011-04-07 11:22:11

CentOS 5.6

2009-09-23 11:59:48

Office 2010Web程序漏洞

2022-08-24 15:02:17

JS空值合并運算符

2011-01-24 14:34:12

webOS
點贊
收藏

51CTO技術棧公眾號