当前位置: 首页 > article >正文

19 # 高级类型:索引类型

let obj = {
    a: 1,
    b: 2,
    c: 3
}
// 抽取值形成数组
function getValues(obj: any, keys: string[]) {
    return keys.map(k => obj[k])
}

console.log(getValues(obj, ['a', 'b'])); // [1, 2]
console.log(getValues(obj, ['e', 'f'])); // [undefined, undefined] 属性不存在也不报错

可以使用索引来约束处理这种问题。

索引类型查询操作符:keyof T 是一种索引类型查询操作符,用于获取类型 T 的所有属性名的联合类型。它可以用于访问和操作对象类型的属性名称。

interface Obj {
    a: number,
    b: string
}
let key: keyof Obj;

索引访问操作符:T[K] 表示类型 T 中索引为 K 的属性的类型。这种语法通常用于访问对象类型中特定属性的类型。

let value: Obj['a'];

泛型约束:T extends U

function getValues<T, K extends keyof T>(obj: T, keys: K[]): T[K][] {
    return keys.map(k => obj[k])
}

console.log(getValues(obj, ['a', 'b'])); // [1, 2]
console.log(getValues(obj, ['e', 'f'])); // 报错

http://www.kler.cn/a/272876.html

相关文章:

  • JVM直击重点
  • 强化学习-蒙特卡洛方法
  • FFmpeg硬件解码
  • 基于 requests 依赖包的 Python 爬虫实战
  • idea上git log面板的使用
  • My ICLR Learning-Feedback
  • Django生命周期
  • Python的接口自动化unittest测试框架和ddt数据驱动
  • 12 Python多进程
  • 前端基础篇-快速了解 Vue 前端框架(Vue 指令)
  • 提高效率,就信赖快速开发表单平台
  • 如何跨数据源根据一张表字段更新另一张表字段数据
  • IOS面试题object-c 91-100
  • 上传照片怎么改大小?几个图片改大小的方法
  • Codeforces Round 918 (Div. 4)----->E. Romantic Glasses
  • 计算机组成原理-2-计算机的发展应用
  • openEuler-22.03-LTS-SP2更改阿里云yum安装源
  • python异常:pythonIOError异常python打开文件异常
  • 阿里云云服务器ECS端口多个端口号开通教程
  • 组建对等网
  • Qt Excel文件读写
  • 深入理解Linux内核页表映射分页机制原理
  • 软考怎么考?高项科目这么多,应该怎么选?
  • 实现更高能效的汽车级低边驱动器NRVB140ESFT1G 带温度和电流限制 自保护低压侧驱动器
  • 过拟合欠拟合
  • Python爬虫 Day1