上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖
楼主: 李恒道 - 

typescript类型体操记录贴(四)Tuple to Object

[复制链接]
  • TA的每日心情
    开心
    2023-2-28 23:59
  • 签到天数: 191 天

    [LV.7]常住居民III

    637

    主题

    5194

    回帖

    6076

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6076

    荣誉开发者管理员油中2周年生态建设者喜迎中秋

    发表于 2022-7-18 10:18:00 | 显示全部楼层 | 阅读模式
    Give an array, transform into an object type and the key/value must in the given array.
    
    For example:

    给一个数组,转化为对象,key和value必须在给定的数组中
    例如

    const tuple = ['tesla', 'model 3', 'model X', 'model Y'] as const
    
    type result = TupleToObject<typeof tuple> // expected { tesla: 'tesla', 'model 3': 'model 3', 'model X': 'model X', 'model Y': 'model Y'}

    ['tesla', 'model 3', 'model X', 'model Y'] as const
    通过使用as const推断了一个元组类型
    我们期待

    TupleToObject<typeof tuple> // expected { tesla: 'tesla', 'model 3': 'model 3', 'model X': 'model X', 'model Y': 'model Y'}

    这个题抄答案了
    我们用的

    type TupleToObject<T extends readonly any[]> = {
      [P in T[number]]:P
    }

    其中T[number]是通过索引类型签名来获取内容的联合集合
    然后进行遍历
    具体可以参考
    https://bbs.tampermonkey.net.cn/thread-2766-1-1.html

    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表