原创 Typescript類型體操 - BEM style string

題目 中文 Block,Element,Modifier 方法(BEM)是 CSS 中類的流行命名約定。 例如,塊組件用 btn 表示,依賴於塊的元素用 btn__price 表示,更改塊樣式的修飾符將用 btn--big 或者 btn__

原创 Typescripe類型體操 - FlipArguments

題目 中文 實現 lodash 中_.flip方法的類型版本 FlipArguments<T>類型接收泛型參數 T 並返回一個函數類型, 且此函數類型有和 T 相同的返回類型但其參數的順序是倒過來的 English Implement th

原创 Typescript類型體操 - FlattenDepth

題目 中文 遞歸將數組展開到指定的深度 示例: type a = FlattenDepth<[1, 2, [3, 4], [[[5]]]], 2>; // [1, 2, 3, 4, [5]]. flattern 2 times type b

原创 Typescript類型體操 - ObjectEntries

題目 中文 實現 Object.entries 的類型版本 示例: interface Model { name: string; age: number; locations: string[] | null; }

原创 Typescript類型體操 - TupleToNestedObject

題目 中文 給定一個只包含字符串類型的元組類型T和一個類型 U, 遞歸地構建一個對象. English Given a tuple type T that only contains string type, and a type U, b

原创 Typescript類型體操 - OmitByType

題目 中文 從T中選出一組無法分配給U的屬性 示例: type OmitBoolean = OmitByType< { name: string; count: number; isR

原创 Typescript類型體操 - Reverse

題目 中文 實現類型版本的數組反轉 Array.reverse 例如: type a = Reverse<['a', 'b']>; // ['b', 'a'] type b = Reverse<['a', 'b', 'c']>; // ['

原创 Typescript類型體操 - Mutable

題目 中文 實現一個通用的類型 Mutable<T>,使類型 T 的全部屬性可變(非只讀)。 例如: interface Todo { readonly title: string; readonly description

原创 Typescript類型體操 - RequiredByKeys

題目 中文 實現一個通用的RequiredByKeys<T, K>,它接收兩個類型參數T和K。 K指定應設爲必選的T的屬性集。當沒有提供K時,它就和普通的Required<T>一樣使所有的屬性成爲必選的。 例如: interface Use

原创 Typescript類型體操 - PartialByKeys

題目 中文 實現一個通用的PartialByKeys<T, K>,它接收兩個類型參數T和K。 K指定應設置爲可選的T的屬性集。當沒有提供K時,它就和普通的Partial<T>一樣使所有屬性都是可選的。 例如: interface User

原创 Typescript類型體操 - MinusOne

題目 中文 給定一個正整數作爲類型的參數,要求返回的類型是該數字減 1。 例如: type Zero = MinusOne<1>; // 0 type FiftyFour = MinusOne<55>; // 54 English Giv

原创 Typescript類型體操 - RemoveIndexSignature

題目 中文 實現 RemoveIndexSignature<T>, 將索引字段從對象中排除掉. 示例: type Foo = { [key: string]: any; foo(): void; }; type A = Re

原创 Typescript類型體操 - EndsWith

題目 中文 實現EndsWith<T, U>,接收兩個 string 類型參數,然後判斷T是否以U結尾,根據結果返回true或false 例如: type a = EndsWith<'abc', 'bc'>; // expected to

原创 Typescript類型體操 - PickByType

題目 中文 找出T中類型爲U的屬性 示例: type OnlyBoolean = PickByType< { name: string; count: number; isReadon

原创 Typescript類型體操 - StartsWith

題目 中文 實現StartsWith<T, U>,接收兩個 string 類型參數,然後判斷T是否以U開頭,根據結果返回true或false 例如: type a = StartsWith<'abc', 'ac'>; // expected