Qzhor
Qzhor
" 作为一个DOM事件处理函数, this指向触发事件的元素,也就是始事件处理程序所绑定到的DOM节点。" 这句话前半段是不对的, this指向绑定事件的dom元素, this===e.currentTarget才是准确的。
后面更新的test case不对味儿了,题目里说肯定是正数,这0又得打补丁了,开头加个T extends 0 ? -1 : 不知道有没有更好的办法
type Last = T extends [...infer A, infer B] ? B : never
latest version: `type Pop = T extends [...infer A, any] ? A : []`
`type FooBar = { foo(): any; [foobar](): void; };` how does ts check these keys ? not string?
latest version: 2022-03-22 1. `const tuple = ['tesla', 'model 3', 'model X', 'model Y'] as const;` why use as const? 2. `type TupleToObject = { [k in T[number]]: k; };`...
how this works? seem like someone extends all these return false, or everyone extends all these return false ? we can see it works by everyone extends, but why
白话讲一下我的理解, 这是个判断联合类型的类型,解法势必要涉及遍历,和比对, 1. T extends T 为了人为触发分布式(遍历),光有这个不够,脑补一下这个遍历只能判断自己等于自己, 2. 所以上面作用只是开启一次循环,要再定个变量,C extends T = T,才能够做比对,比如IsUnion 3. 这里的遍历我理解是C2n的?外层循环T,内层循环C(C也触发了分布式吧?) 这时候遍历当中T的项等于C的项返回true,否则unkown. 4. 都是true的话肯定是彼此比对都相等了, 要么就是非联合类型的,单个string这种,要么是string | string这种(这个题目的test case里没有, 而且这个ts是可以算出结果就是string的)。 5. 否则就是比对不等(即识别到是联合类型),分布式结果是true | unknown, unknown | unknown这种,肯定也不extends...
> ```ts > // your answers > type Flatten = S extends [infer X, ...infer Y] ? > X extends any[] ? > Flatten : Flatten > : T >...
> > I don't think the test cases are complete.. > > ```ts > > type TupleToUnion = T extends Array ? R : never; > > > > let...