首页 > 其他分享 >[Typescript] Tips: Create your own 'objectKeys' function using generics and the 'keyo

[Typescript] Tips: Create your own 'objectKeys' function using generics and the 'keyo

时间:2022-10-04 14:23:03浏览次数:75  
标签:function myObject keyof own key objectKeys operator using

The looseness of Object.keys can be a real pain point when using TypeScript. Luckily, it's pretty simple to create a tighter version using generics and the keyof operator.

export const myObject = {
  a: 1,
  b: 2,
  c: "3"
}

Object.keys(myObject).forEach((key) => {
  console.log(myObject[key])
})

This is because keyis type of string, instead of 'a' | 'b' | 'c'

export const myObject = {
  a: 1,
  b: 2,
  c: "3"
}

const objectKeys = <T>(obj: T): (keyof T)[] => {
  return Object.keys(obj) as (keyof T)[]
}

objectKeys(myObject).forEach((key) => {
  console.log(myObject[key])
})

 

标签:function,myObject,keyof,own,key,objectKeys,operator,using
From: https://www.cnblogs.com/Answer1215/p/16753705.html

相关文章

  • [Typescript + React] Tips: Write your own 'PropsFrom' helper to extract props fr
    Typehelperschangethegamewhenitcomestotypesinyourcodebase.TheyhelpTypeScriptinfermorefromyourcode-andmakeyourtypesalotmorereadable.......
  • 2022.10.4markdown随笔
    Markdowm学习标题三级标题四级标题 字体helloworldhelloworldhelloworldhelloworld引用选择坚持,留住明天!分割线图片超链接点击跳转到哔哩哔哩列表......
  • C++自学笔记 内联函数 Inline Function
      调用一个函数需要额外做一些什么:推入参数进堆栈推入返回地址进堆栈准备返回值在寄存器推出所有推入解决方法:内联函数InlineFunction  内联函数可以......
  • MarkDown
    使用一级标题(#空格加标题)二级标题三级标题四级标题五级标题六级标题有序列表和无序列表有序列表(1.空格)有序列表无序列表(-空格)换行加tab加粗、斜体、下......
  • 将Word(docx格式)批量转为Markdown格式
    批量转换格式首先,利用pandoc先将文件夹内的docx格式文档转为md格式。可以直接在目录下执行下面的powershell命令。这一步我其实写了python脚本,但不知为何一直无法正确执......
  • markDown的使用
    java标题:二级标题三级标题 字体helloworld!helloworld!helloworld!helloworld!helloworld! 引用小颖子分割线图片这种格式图片的路径可以是......
  • ABC 246 D - 2-variable Function(数论/暴力)
    https://atcoder.jp/contests/abc246/tasks/abc246_d题目大意:给定一个数字N,让我们求出X,这个X要满足X>=N,并且X内部可以有一对(a,b)满足a^3+a^2*b+b^2*a+b^3。找出最......
  • markdown图标
    ......
  • MarkDown学习笔记
    MarkDown学习标题:一级标题#一级标题二级标题##二级标题三级标题 ###三级标题字体 ##字体helloword **helloword**helloword *helloword*helloword......
  • StComputer2023概率密度和分布计算软件下载Probability density and distribution cal
    StComputer2023概率密度和分布计算软件下载Probabilitydensityanddistributioncalculationsoftwaredownload2023版更新记录: 2023EditionupdateRecord: 1.......