石发磊
石发磊
> ```js > Number.prototype.add = function(n) { > return this.valueOf() + n; > }; > Number.prototype.minus = function(n) { > return this.valueOf() - n; > }; > ``` > >...
> ``` > const arr = str.match(/(\w)\1*/g); > const maxLen = Math.max(...arr.map(s => s.length)); > const result = arr.reduce((pre, curr) => { > if (curr.length === maxLen) { > pre[curr[0]]...
```typescript type Curry any)> = F extends ((arg_0: infer Arg, ...restArg: infer Rests) => any) ? ( Rests extends [] ? F : ((arg: Arg) => Curry ReturnType>) ) :...
> //求指点感觉不是很对 > > ```ts > type Curry< > F extends (...args: any[]) => any, > P extends any[] = Parameters, > R = ReturnType > > = P extends...
> ```ts > interface Example { > a: string; > b: string | number; > c: () => void; > d: {}; > } > > // extends 语句,如果左边是联合类型,会依次执行,并返回一个联合类型 >...
> ```ts > type ElementType3 = Split ``` Split 这个期望结果是否符合预期
> 和 32 题思路一样 > > ```ts > type Repeat< > T, > C extends number, > S extends any[] = [], // 递归判断条件 > U extends any[] = []...
```javascript var list = [ { id: 1, name: '部门A', parentId: 0 }, { id: 3, name: '部门C', parentId: 1 }, { id: 4, name: '部门D', parentId: 1 }, {...
> ```js > class Observer { > static events = new Map() > > static on(name, fn) { > this.events.set(name, {isOnce: false, fn}) > } > > static once(name, fn)...
```javascript function get(obj, path, defaults) { try { const val = path.split('.') .map((item) => item.split(/\[(\d)\]/).filter(Boolean)).flat().reduce((acc, v) => acc[v], obj) if (typeof defaults !== 'undefined' && val === undefined) { return...