原创 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

原创 Typescript類型體操 - ReplaceKeys

題目 中文 實現一個ReplaceKeys類型, 這個類型可以替換聯合類型中指定屬性的類型, 如果聯合類型中的某個類型沒有這個屬性, 那就跳過; ReplaceKeys接受 3 個泛型參數. 例如: type NodeA = { t

原创 Typescript類型體操 - DropChar

題目 中文 從字符串中剔除指定字符。 例如: type Butterfly = DropChar<' b u t t e r f l y ! ', ' '>; // 'butterfly!' English Drop a specifie

原创 Typescript類型體操 - PercentageParser

題目 中文 實現類型 PercentageParser。根據規則 /^(\+|\-)?(\d*)?(\%)?$/ 匹配類型 T。 匹配的結果由三部分組成,分別是:[正負號, 數字, 單位],如果沒有匹配,則默認是空字符串。 例如: type

原创 Typescript類型體操 - IsNever

題目 中文 實現一個以 T 作爲泛型參數的 IsNever類型. 如果 T 是never, 返回 true, 否則返回 false. 示例: type A = IsNever<never>; // expected to be true t

原创 Typescript類型體操 - IsUnion

題目 中文 實現一個 IsUnion類型, 接受輸入類型 T, 並返回 T 是否爲聯合類型. type case1 = IsUnion<string>; // false type case2 = IsUnion<string | numb

原创 Typescript類型體操 - Diff

題目 中文 獲取兩個接口類型中的差值屬性。 type Foo = { a: string; b: number; }; type Bar = { a: string; c: boolean; }; type

原创 typescript類型體操 - AnyOf

題目 中文 在類型系統中實現類似於 Python 中 any 函數。類型接收一個數組,如果數組中任一個元素爲真,則返回 true,否則返回 false。如果數組爲空,返回 false。 例如: type Sample1 = AnyOf<[1

原创 Typescript類型體操 - kebab case

題目 中文 將 camelCase 或 PascalCase 的字符串轉換爲 kebab-case 的風格 示例: type FooBarBaz = KebabCase<'FooBarBaz'>; const foobarbaz: FooB