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

前端 - 泛型参数R的使用场景是什么呢?

沈宏朗
2024-08-14

在学习泛型的时候:

R: 用于表示函数返回值的泛型类型参数。

function getResult<R>(value: R): R {
    return value;
}

请问这个R的使用场景是什么呢?

共有1个答案

梁丘远航
2024-08-14

简单粗暴来说就是 函数预期的返回值类型传入的某一个参数类型一致

比如说我有一个函数,传入一个对象数组,返回值是这个对象数组中的某一项符合条件的结果。

// 定义泛型函数
function findItem<T>(items: T[], predicate: (item: T) => boolean): T | undefined {
  return items.find(predicate);
}

// 示例对象类型
interface Person {
  name: string;
  age: number;
}

// 示例对象数组
const people: Person[] = [
  { name: 'Alice', age: 25 },
  { name: 'Bob', age: 30 },
  { name: 'Charlie', age: 35 }
];

// 使用示例
const result = findItem(people, person => person.age > 30);

console.log(result); // 输出: { name: 'Charlie', age: 35 }

不过我TS用的并不多基本上就是一开始学了一些概念,后面实际业务中几乎就是运用不到的。
很多实际应用上面的理解都是借助 type-challenges 这个库中的题目。

 类似资料:
  • 这两种方式都可以引用state里的某个变量,让我们更简洁的去使用它,而不需要写一长串前缀,我的疑问是这两个有什么区别?后者这么写也能实现目标,那为什么还有mapState的存在呢?是不是就显得多余了。

  • 本文向大家介绍Proxy是什么,有什么应用场景?相关面试题,主要包含被问及Proxy是什么,有什么应用场景?时的应答技巧和注意事项,需要的朋友参考一下 Proxy做数据劫持用的,和Object.defineProperty类似 可以直接监听对象,而非其属性 不过功能更强大,能监听数组,包含get, set, has, defineProperty, has, deleteProperty等十三个强

  • 本文向大家介绍Reflect是什么,有什么应用场景?相关面试题,主要包含被问及Reflect是什么,有什么应用场景?时的应答技巧和注意事项,需要的朋友参考一下 1.将Object对象的一些明显属于语言内部的方法(比如Object.defineProperty),放到Reflect对象上。 修改某些Object方法的返回结果,让其变得更合理。比如,Object.defineProperty(obj,

  • ThreadLocal 是一个本地线程副本变量工具类,在每个线程中都创建了一个 ThreadLocalMap 对象,简单说 ThreadLocal 就是一种以空间换时间的做法,每个线程可以访问自己内部 ThreadLocalMap 对象内的 value。通过这种方式,避免资源在多线程间共享。 原理:线程局部变量是局限于线程内部的变量,属于线程自身所有,不在多个线程间共享。Java提供ThreadL

  • 本文向大家介绍ThreadLocal 是什么?有哪些使用场景?相关面试题,主要包含被问及ThreadLocal 是什么?有哪些使用场景?时的应答技巧和注意事项,需要的朋友参考一下 ThreadLocal 为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。 ThreadLocal 的经典使用场景是数据库连接和 session 管理等。

  • useDefferedValue的运用场景是什么? 为什么我的这个并没有实现useDefferedValue的延迟效果(不影响input的更新) 理论上不是应该每次输入,更新新的state的时候,slowList后台重新渲染,然后input的输入是不影响的,但是如果再次输入,就会触发slowList新的渲染,抛弃旧的渲染。就类似于渲染的防抖吗? 重新找了些资料,但是也没有解决问题。。。 从结果来看