当前位置: 首页 > 知识库问答 >
问题:

javascript - TS中难以理解的诡异行为,下面的四种写法为什么会结果一样呢?

晋言
2024-09-02
type GetReturnType1<Type> = Type extends (...args: never) => infer ABC
  ? ABC
  : never;

type GetReturnType2<Type> = Type extends (...args: never[]) => infer ABC
  ? ABC
  : never;
type GetReturnType3<Type> = Type extends (...args: any[]) => infer ABC
  ? ABC
  : never;


 type GetReturnType4<Type> = Type extends (...args: any) => infer ABC
  ? ABC
  : never; 

还有下面的一个代码,本来想着T 不是Major 就是 ResCategoryLabel。但是setSelect地方会报错,条件类型与联合类型不匹配。怎么想也觉得没有问题,不得不加ts-ignore忽略,很不理解。哪位大佬来给讲讲,学习一下。


type Props<T extends Major | ResCategoryLabel> = {
  labels: T[]; 
  setSelect: (
    index: number,
    label: T extends Major ? Major : ResCategoryLabel
  ) => void; 
  xxx
};
  const changeSelect = (
    index: number,
    label: Major | ResCategoryLabel,
    e: React.MouseEvent<HTMLAnchorElement> | React.TouchEvent<HTMLAnchorElement>
  ) => {
    setSelect(index, label); 
    activeTabToCenter(e.currentTarget as HTMLElement);
  };

共有1个答案

冀弘厚
2024-09-02

playground

 类似资料:
  • 问题内容: [代码] 问题答案: format : push会改变原数组; type, size : 函数内部(函数声明是一个独立的代码块)改变的只是函数的参数值,不会影响到外部声明的变量。

  • ES6为什么会输出这个结果,程序是怎么执行的,有大佬可以解释一下吗?

  • 之前没问题但有一个弹框样式不能用scoped,所以删了一下,然后不管怎么撤回样式不生效了! 代码:

  • 本文向大家介绍根据下面代码:说出执行结果,并解释为何是会是这样的结果?相关面试题,主要包含被问及根据下面代码:说出执行结果,并解释为何是会是这样的结果?时的应答技巧和注意事项,需要的朋友参考一下 1:输出b 2:输出undefined,楼上已经有答案了,Number类型是不可迭代的类型,这点可以从 Number类型的数据是不存在length这个方法验证,既然length都没有,那答案就显而易见了。

  • 本文向大家介绍请解释下为什么下面第一种方式会报错而第二种不会?相关面试题,主要包含被问及请解释下为什么下面第一种方式会报错而第二种不会?时的应答技巧和注意事项,需要的朋友参考一下 object的键会被自动转为字符串。 但是 属性名只能是字符串,不能是数字, 因为会被当成小数点。 第一种可以使用 第二种会被转成字符串所以不会报错。

  • 小白菜疑问,能不能详细地跟我说一下两种写法的区别? 题目:使用函数求素数和: 定义prime(p), 其中函数prime当用户传入参数p为素数时返回True,否则返回False 定义PrimeSum(m,n),函数PrimeSum返回区间[m, n]内所有素数的和。题目保证用户传入的参数1<=m<n 假设输入m=1,n=10 疑问:下面是两种不同的写法,第一个是我写的,第二个是正确答案TT,我不太

  • 在写 OTP input 组件时,发现 input 宽度为 0 时,Android 输入内容方向异常,下面是异常代码和操作步骤: 点击“开始输入”按钮后,键盘输入内容,iOS 系统下表现正常,Android 输入方向则是从右向左。 影响结果代码为 style="width: 0;",如果宽设置成非0,输入方向则正常。 是 Android 处理机制不同还是 BUG?

  • 本文向大家介绍解释下为什么 会换两行?相关面试题,主要包含被问及解释下为什么 会换两行?时的应答技巧和注意事项,需要的朋友参考一下 p { display: block; margin-block-start: 1em; margin-block-end: 1em; margin-inline-start: 0px; margin-inline-end: 0px; } 查阅p标签的用户代理可知,默