成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

TS 4.7 版本新特性,讓 Infer 更簡(jiǎn)單

開(kāi)發(fā) 前端
你了解 TypeScript infer 的相關(guān)知識(shí)點(diǎn)么?你知道在條件類(lèi)型中,如何利用 infer 實(shí)現(xiàn)類(lèi)型推斷么?

本文阿寶哥將介紹 TypeScript 4.7 版本引入的一個(gè)與 infer 有關(guān)的新特性,該特性能夠讓 infer 類(lèi)型推斷變得更加簡(jiǎn)潔。在介紹 infer 有關(guān)的新特性之前,我們先來(lái)看個(gè)例子:

type FirstIfString<T> = T extends [infer S, ...unknown[]]
? S extends string
? S
: never
: never;

圖片

在以上代碼中,F(xiàn)irstIfString 工具類(lèi)型使用了 TypeScript 的條件類(lèi)型、條件鏈和 infer 類(lèi)型推斷。在第一個(gè)條件類(lèi)型中,我們判斷類(lèi)型參數(shù) T 的實(shí)際類(lèi)型是否為非空的元組類(lèi)型,同時(shí)使用 infer 聲明了類(lèi)型變量 S,用于存儲(chǔ)模式匹配過(guò)程中,所捕獲元組類(lèi)型第一個(gè)元素的類(lèi)型。

而在第二個(gè)條件類(lèi)型中,我們會(huì)繼續(xù)判斷類(lèi)型變量 S 是否為字符串類(lèi)型的子類(lèi)型,若條件滿足的話,則會(huì)返回類(lèi)型變量 S 所對(duì)應(yīng)的類(lèi)型,否則所有條件類(lèi)型的 false 分支都會(huì)返回 never 類(lèi)型。

介紹完 FirstIfString 工具類(lèi)型的作用之后,我們來(lái)驗(yàn)證一下它的功能:

// string
type A = FirstIfString<[string, number, number]>;

// "hello"
type B = FirstIfString<["hello", number, number]>;

// "hello" | "world"
type C = FirstIfString<["hello" | "world", boolean]>;

// never
type D = FirstIfString<[boolean, number, string]>;

圖片

由以上結(jié)果可知,F(xiàn)irstIfString 工具類(lèi)型是可以正常使用的。那么現(xiàn)在問(wèn)題來(lái)了,該工具類(lèi)型內(nèi)部使用了兩個(gè)條件類(lèi)型,我們能否使用一個(gè)條件類(lèi)型來(lái)實(shí)現(xiàn)同樣的功能呢?答案是可以的!TypeScript 4.7 版本允許我們?yōu)?infer type 添加可選的 extends 子句,用于指定類(lèi)型變量的顯式約束。

責(zé)任編輯:武曉燕 來(lái)源: 全棧修仙之路
相關(guān)推薦

2021-07-24 13:16:31

Android 代碼操作系統(tǒng)

2022-05-09 22:53:02

數(shù)組類(lèi)型TS

2013-05-16 10:33:11

C#C# 5.0Async

2012-06-20 13:36:42

Surface平板

2019-04-04 14:05:20

consolejs前端

2019-07-10 10:20:36

前端用戶體驗(yàn)javascript

2010-03-23 09:54:35

好壓壓縮

2012-09-25 09:28:36

程序員代碼代碼整潔

2020-05-07 10:18:06

JavaScript前端技術(shù)

2009-06-18 15:51:52

SSL VPN負(fù)載均衡Array

2024-04-26 07:54:07

ZustandReact狀態(tài)管理庫(kù)

2009-11-04 15:44:39

ADO.NET Sql

2015-05-20 12:50:42

C#開(kāi)發(fā)抽象增刪改

2024-02-27 19:22:00

cookieStorCookie事件

2020-06-16 13:22:22

AI創(chuàng)新深度學(xué)習(xí)

2015-07-17 13:27:16

MySQL 5.7

2015-07-17 13:43:09

MySQL 5.7

2015-07-17 13:45:12

MySQL 5.7

2009-12-18 13:43:07

Ruby 1.9版本

2024-01-15 00:30:04

Python 3語(yǔ)言版本
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 伊人伊成久久人综合网站 | 日韩成人中文字幕 | 亚洲精品成人网 | 在线免费亚洲视频 | 午夜av免费| 日韩在线免费 | 中文字幕在线三区 | 日本一区二区三区在线观看 | 日韩国产黄色片 | 国产精品久久久久国产a级 欧美日本韩国一区二区 | 99精品一区二区三区 | 国产精品激情 | 亚洲a一区二区 | 人人擦人人干 | 我要看免费一级毛片 | 国产精品一区在线观看 | 久久久xxx| 久久高清| 亚洲精品456 | 最新中文字幕久久 | 国产精品自在线 | 国产免费av网 | 欧美日韩国产三级 | 欧美一区二区三区在线观看 | 在线观看日本高清二区 | 精品欧美一区二区在线观看视频 | av在线免费观看网址 | 99在线视频观看 | 亚洲精品99 | av影片在线 | 国产在线高清 | 亚洲综合99| 亚州精品天堂中文字幕 | 亚洲aⅴ | 一区免费| 久久1区 | 久久99深爱久久99精品 | 国产一区 | 欧美精品久久久久久久久老牛影院 | 日韩精品久久 | 精品国产一区二区三区久久久久久 |