摘要: 题目 中文 实现一个接收string,number或bigInt类型参数的Absolute类型,返回一个正数字符串。 例如 type Test = -100; type Result = Absolute<Test>; // expected to be "100" English Implemen 阅读全文
posted @ 2022-09-06 21:12 Laggage 阅读(55) 评论(0) 推荐(0)
摘要: 题目 中文 实现一个为接口添加一个新字段的类型。该类型接收三个参数,返回带有新字段的接口类型。 例如: type Test = { id: '1' } type Result = AppendToObject<Test, 'value', 4> // expected to be { id: '1' 阅读全文
posted @ 2022-09-06 21:02 Laggage 阅读(72) 评论(0) 推荐(0)
摘要: 题目 中文 在这个挑战中,你需要写一个接受数组的类型,并且返回扁平化的数组类型。 例如: type flatten = Flatten<[1, 2, [3, 4], [[[5]]]]> // [1, 2, 3, 4, 5] English In this challenge, you would n 阅读全文
posted @ 2022-09-06 20:52 Laggage 阅读(59) 评论(0) 推荐(0)
摘要: 题目 中文 计算字符串的长度,类似于 String#length 。 English Compute the length of a string literal, which behaves like String#length. 答案 解法1 type StringToArrray<T exte 阅读全文
posted @ 2022-09-06 20:36 Laggage 阅读(146) 评论(0) 推荐(0)
摘要: 题目 中文 实现联合类型的全排列,将联合类型转换成所有可能的全排列数组的联合类型。 type perm = Permutation<'A' | 'B' | 'C'>; // ['A', 'B', 'C'] | ['A', 'C', 'B'] | ['B', 'A', 'C'] | ['B', 'C' 阅读全文
posted @ 2022-09-06 00:12 Laggage 阅读(147) 评论(0) 推荐(0)
摘要: 题目 中文 实现内置的 Parameters<T> 类型,而不是直接使用它,可参考TypeScript官方文档。 例如: const foo = (arg1: string, arg2: number): void => {} type FunctionParamsType = MyParamete 阅读全文
posted @ 2022-09-05 20:39 Laggage 阅读(275) 评论(0) 推荐(0)
摘要: 题目 中文 实现一个泛型 AppendArgument<Fn, A>,对于给定的函数类型 Fn,以及一个任意类型 A,返回一个新的函数 G。G 拥有 Fn 的所有参数并在末尾追加类型为 A 的参数。 type Fn = (a: number, b: string) => number type Re 阅读全文
posted @ 2022-09-05 20:35 Laggage 阅读(61) 评论(0) 推荐(0)
摘要: 答案 中文 实现 ReplaceAll<S, From, To> 将一个字符串 S 中的所有子字符串 From 替换为 To。 例如 type replaced = ReplaceAll<'t y p e s', ' ', ''> // 期望是 'types' English Implement R 阅读全文
posted @ 2022-09-05 20:18 Laggage 阅读(495) 评论(0) 推荐(0)
摘要: 题目 中文 实现 Replace<S, From, To> 将字符串 S 中的第一个子字符串 From 替换为 To 。 例如 type replaced = Replace<'types are fun!', 'fun', 'awesome'> // 期望是 'types are awesome! 阅读全文
posted @ 2022-09-05 20:00 Laggage 阅读(178) 评论(0) 推荐(0)
摘要: 题目 中文 实现 Capitalize<T> 它将字符串的第一个字母转换为大写,其余字母保持原样。 例如 type capitalized = Capitalize<'hello world'> // expected to be 'Hello world' English Implement Ca 阅读全文
posted @ 2022-09-05 19:41 Laggage 阅读(363) 评论(0) 推荐(0)
摘要: 题目 中文 实现Trim<T>,它是一个字符串类型,并返回一个新字符串,其中两端的空白符都已被删除。 例如 type trimed = Trim<' Hello World '> // expected to be 'Hello World' English Implement Trim<T> wh 阅读全文
posted @ 2022-09-04 23:25 Laggage 阅读(169) 评论(0) 推荐(0)
摘要: 题目 中文 实现 TrimLeft<T> ,它接收确定的字符串类型并返回一个新的字符串,其中新返回的字符串删除了原字符串开头的空白字符串。 例如 type trimed = TrimLeft<' Hello World '> // 应推导出 'Hello World ' English Implem 阅读全文
posted @ 2022-09-04 23:16 Laggage 阅读(101) 评论(0) 推荐(0)
摘要: 题目 中文 有时,您可能希望根据某个属性在联合类型中查找类型。 在此挑战中,我们想通过在联合类型Cat | Dog中搜索公共type字段来获取相应的类型。换句话说,在以下示例中,我们期望LookUp<Dog | Cat, 'dog'>获得Dog,LookUp<Dog | Cat, 'cat'>获得C 阅读全文
posted @ 2022-09-04 23:01 Laggage 阅读(71) 评论(0) 推荐(0)
摘要: 题目 中文 键入函数PromiseAll,它接受PromiseLike对象数组,返回值应为Promise<T>,其中T是解析的结果数组。 const promise1 = Promise.resolve(3); const promise2 = 42; const promise3 = new Pr 阅读全文
posted @ 2022-09-04 22:56 Laggage 阅读(348) 评论(0) 推荐(0)
摘要: 题目 中文 实现一个通用Pop<T>,它接受一个数组T,并返回一个由数组T的前length-1项以相同的顺序组成的数组。 例如 type arr1 = ['a', 'b', 'c', 'd'] type arr2 = [3, 2, 1] type re1 = Pop<arr1> // expecte 阅读全文
posted @ 2022-09-04 22:10 Laggage 阅读(64) 评论(0) 推荐(0)
摘要: 题目 中文 实现一个通用Last<T>,它接受一个数组T并返回其最后一个元素的类型。 例如 type arr1 = ['a', 'b', 'c'] type arr2 = [3, 2, 1] type tail1 = Last<arr1> // expected to be 'c' type tai 阅读全文
posted @ 2022-09-04 21:56 Laggage 阅读(67) 评论(0) 推荐(0)
摘要: 题目 中文 在 JavaScript 中我们经常会使用可串联(Chainable/Pipeline)的函数构造一个对象,但在 TypeScript 中,你能合理的给它赋上类型吗? 在这个挑战中,你可以使用任意你喜欢的方式实现这个类型 - Interface, Type 或 Class 都行。你需要提 阅读全文
posted @ 2022-09-04 21:33 Laggage 阅读(197) 评论(0) 推荐(0)
摘要: 题目 中文 实现泛型TupleToUnion<T>,它返回元组所有值的合集。 例如 type Arr = ['1', '2', '3'] type Test = TupleToUnion<Arr> // expected to be '1' | '2' | '3' English Implement 阅读全文
posted @ 2022-09-04 20:35 Laggage 阅读(81) 评论(0) 推荐(0)
摘要: 题目 中文 在类型系统里实现 JavaScript 内置的 Array.concat 方法,这个类型接受两个参数,返回的新数组类型应该按照输入参数从左到右的顺序合并为一个新的数组。 例如: type Result = Concat<[1], [2]> // expected to be [1, 2] 阅读全文
posted @ 2022-09-04 20:14 Laggage 阅读(101) 评论(0) 推荐(0)
摘要: 题目 中文 实现一个 IF 类型,它接收一个条件类型 C ,一个判断为真时的返回类型 T ,以及一个判断为假时的返回类型 F。 C 只能是 true 或者 false, T 和 F 可以是任意类型。 例如: type A = If<true, 'a', 'b'> // expected to be 阅读全文
posted @ 2022-09-04 20:10 Laggage 阅读(82) 评论(0) 推荐(0)
摘要: 题目 中文 If we have a type which is wrapped type like Promise. How we can get a type which is inside the wrapped type? For example: if we have Promise<Ex 阅读全文
posted @ 2022-09-04 19:59 Laggage 阅读(446) 评论(0) 推荐(0)
摘要: 题目 中文 实现内置的Exclude <T, U>类型,但不能直接使用它本身。 从联合类型T中排除U的类型成员,来构造一个新的类型。 例如: type Result = MyExclude<'a' | 'b' | 'c', 'a'> // 'b' | 'c' English Implement th 阅读全文
posted @ 2022-09-04 19:47 Laggage 阅读(138) 评论(0) 推荐(0)
摘要: 题目 中文 实现一个通用的DeepReadonly<T>,它将对象的每个参数及其子对象递归地设为只读。 您可以假设在此挑战中我们仅处理对象。数组,函数,类等都无需考虑。但是,您仍然可以通过覆盖尽可能多的不同案例来挑战自己。 例如 type X = { x: { a: 1 b: 'hi' } y: ' 阅读全文
posted @ 2022-09-02 23:52 Laggage 阅读(228) 评论(0) 推荐(0)
摘要: 题目 中文 创建一个通用的Length,接受一个readonly的数组,返回这个数组的长度。 例如: type tesla = ['tesla', 'model 3', 'model X', 'model Y'] type spaceX = ['FALCON 9', 'FALCON HEAVY', 阅读全文
posted @ 2022-09-02 23:28 Laggage 阅读(48) 评论(0) 推荐(0)
摘要: 题目 中文 实现一个通用First<T>,它接受一个数组T并返回它的第一个元素的类型。 例如: type arr1 = ['a', 'b', 'c'] type arr2 = [3, 2, 1] type head1 = First<arr1> // expected to be 'a' type 阅读全文
posted @ 2022-09-02 23:23 Laggage 阅读(72) 评论(0) 推荐(0)