typescript 巢狀陣列的型別怎麼寫?

時間 2021-06-02 09:25:17

1樓:

2023年9月3日更新:[email protected]將支援Recursive conditional type,用它可以徹底解決這個問題:

type

Flatten

readonly

unknown

>=Textends

unknown

?_Flatten

:readonly

_Flatten

;type

_Flatten

=T

extends

readonly

(inferU)

?_Flatten

:T

;declare

function

flatInfinity

readonly

unknown

>(xs: T):

Flatten

;// 測試用例:

const

test1

=flatInfinity

(["zhi乎",[

"吃棗"

,"藥丸"

,2333

]]as

const

);// readonly ("zhi乎" | "吃棗" | "藥丸" | 2333)

const

test2

=flatInfinity([1

,[2,

3],[[4

,[true

]],],

"asd",]

asconst

);// readonly (true | 3 | 2 | 1 | 4 | "asd" | )

簡潔、沒有黑魔法,支援 readonly array 和 tuple !

[email protected] 發布之前,可以先安裝typescript@next使用:

前置知識:

Recursive type references

Distributive Conditional Types

Recursive conditional types

2樓:eczn

export

type

RecursiveArr

=Array

>export

function

flatArr

(arr: RecursiveArr

):T

else

}return

result

}簡單試了下好像沒啥問題 (可以滿足不同型別的陣列元素同時傳入)

現在 TypeScript 的生態如何?

aemoe 因為每增加乙個編譯器都是一次build時間增加而且typescript還不和js一樣 Js可以向下相容會ES6的ES7的寫這些不會的繼續ES4,ES5 所以不會有太大問題而且用的這些新的功能是早晚會被瀏覽器支援的所以用起來很放心所以除非TypeScript受到瀏覽器的支援之前我都不建議在...

給出巢狀查詢語句的文法?

lfkdsk 首先要對 SQL 的語法有一定的了解,這個可以簡單看一下 SQL 92 的一些描述和定義 SQL 92 Wikipedia 分析 SQL 92 定義的 BNF 結構,這個在 github 上能找到很多相關的資訊比如 sql 92.bnf 不過我們不一定要對整個 SQL 的 BNF 進行...

sql迴圈巢狀查詢的使用

吃肉不長肉 oracle資料庫 select from select from select rownum as id,product,New ID,Old ID from tables start with Old ID 1212 connect by prior New ID Old ID or...