首页 > 其他分享 >[Typescript] 54. Medium - Tuple to Nested Object

[Typescript] 54. Medium - Tuple to Nested Object

时间:2022-10-17 15:01:25浏览次数:50  
标签:Typescript string _____________ Tuple 54 TupleToNestedObject boolean Expect type

Given a tuple type T that only contains string type, and a type U, build an object recursively.

type a = TupleToNestedObject<['a'], string> // {a: string}
type b = TupleToNestedObject<['a', 'b'], number> // {a: {b: number}}
type c = TupleToNestedObject<[], boolean> // boolean. if the tuple is empty, just return the U type

 

/* _____________ Your Code Here _____________ */

type TupleToNestedObject<T extends any[], U> = T extends [infer A extends string, ...(infer REST)]
  ? {[Key in A]: TupleToNestedObject<REST, U>}
  : U

type x = TupleToNestedObject<['a', 'b'], number>
/* _____________ Test Cases _____________ */
import type { Equal, Expect } from '@type-challenges/utils'

type cases = [
  Expect<Equal<TupleToNestedObject<['a'], string>, { a: string }>>,
  Expect<Equal<TupleToNestedObject<['a', 'b'], number>, { a: { b: number } }>>,
  Expect<Equal<TupleToNestedObject<['a', 'b', 'c'], boolean>, { a: { b: { c: boolean } } }>>,
  Expect<Equal<TupleToNestedObject<[], boolean>, boolean>>,
]

 

标签:Typescript,string,_____________,Tuple,54,TupleToNestedObject,boolean,Expect,type
From: https://www.cnblogs.com/Answer1215/p/16799215.html

相关文章

  • 数据集 | 1954年至今美联储利率数据集
    下载数据集请登录爱数科该数据集包含自1954年以来每月美国经济状况的数据。联邦基金利率是存款机构隔夜彼此交易联邦基金(联邦储备银行的余额)的利率。借款机构支付给贷款机构......
  • React-hooks+TypeScript最佳实战
    ReactHooks什么是HooksReact一直都提倡使用函数组件,但是有时候需要使用state或者其他一些功能时,只能使用类组件,因为函数组件没有实例,没有生命周期函数,只有类组件才......
  • 548JDBC练习_update、DDL语句和549JDBC各个类详解_ResultSet_基本使用
    JDBC练习_update and DDL语句//删除数据库内容语句//导入jar包publicstaticvoidmain(String[]args){Connectionconn=null;S......
  • [Typescript] 51. Medium - OmitByType
    From T,pickasetofpropertieswhosetypearenotassignableto U.ForExampletypeOmitBoolean=OmitByType<{name:stringcount:numberisReadonly:......
  • 【TypeScript教程】# 16:ts + webpack + less实现贪吃蛇小游戏
    项目搭建我们以demo3的项目为基础,可以复制一份过来在这个基础上添加less相关的处理npmi-Dless然后添加postcss处理兼容性问题npm最后配置webpack//设置less文件的处理{......
  • TypeScript笔记
    TS(就是JS的超集)是静态类型是弱类型(允许隐式转化)下载Ts编译器:npmi-gtypescript查看Ts:tsc使用编译器将Ts文件编译成为js文件使用:tsc文件名.ts指定路径输出:tsc--......
  • 654. 最大二叉树
    题目描述给定一个不重复的整数数组 nums。 最大二叉树 可以用下面的算法从 nums递归地构建:创建一个根节点,其值为 nums中的最大值。递归地在最大值 左边 的 ......
  • TypeScript Type Manipulation All In One
    TypeScriptTypeManipulationAllInOneCreatingTypesfromTypesGenericsKeyofTypeOperatorTypeofTypeOperatorIndexedAccessTypesConditionalTypesMa......
  • Typescript助力项目开发:JS切换TS、TS类型定制与思考
    TS已经成为可以帮助项目顺利开发的存在了。在上半年笔者就被要求采用TS开发新的项目,并在一些老项目中用TS去改造(因为沟通原因我以为某个远程组件只有TS版本)。在其中也有了一......
  • [Typescript] 51. Medium - Mutable
    Implementthegeneric Mutable<T> whichmakesallpropertiesin T mutable(notreadonly).ForexampleinterfaceTodo{readonlytitle:stringreadonlyd......