首页 > 其他分享 >Typescript类型体操 - TupleToNestedObject

Typescript类型体操 - TupleToNestedObject

时间:2022-09-22 21:46:06浏览次数:70  
标签:Typescript string TupleToNestedObject extends 体操 类型 type

题目

中文

给定一个只包含字符串类型的元组类型T和一个类型 U, 递归地构建一个对象.

English

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

答案

type TupleToNestedObject<T extends string[], U> = T extends [
    infer L extends string,
    ...infer R extends string[]
]
    ? { [k in L]: R extends [] ? U : TupleToNestedObject<R, U> }
    : U;

在线演示

标签:Typescript,string,TupleToNestedObject,extends,体操,类型,type
From: https://www.cnblogs.com/laggage/p/type-challenge-tuple-to-nested-object.html

相关文章

  • Typescript类型体操 - ObjectEntries
    题目中文实现Object.entries的类型版本示例:interfaceModel{name:string;age:number;locations:string[]|null;}typemodelEntries=Objec......
  • TypeScript在vue3中的应用(Ref和ComputedRef的应用)
    首先,我承认,我vue3和ts都不是很熟。然后在使用过程中就发现了这样一个情况。constlist:{isBoob:boolean;count:number;}[]=computed(()=>{letarr:number[]......
  • Typescript学习之路(2) - 类型简述
    什么是强类型语言/弱类型语言?强类型语言老式定义:在强类型语言中,当一个对象从调用函数传递到被调用函数时,其类型必须与被调用函数中声明的类型兼容。A(){B(x)}B......
  • Typescript学习之路(3) - 基础数据类型介绍
    安装TSnpmi-gtypescriptTips:因为使用的命令是tsc,这里安装的时候好多人都错误写成了 npmi-gtsc❎,结果在使用的时候就会被提示,安装的不对,要重新安装。TS转换JS......
  • 第一章:TypeScript快速入门
    一、TypeScript开发环境搭建1、TypeScript有什么用编译时的强类型模块化已有的类库可以很方便的使用2、下载Node.jsnode.js官网:Node.js(nodejs.org)......
  • Typescript类型体操 - Mutable
    题目中文实现一个通用的类型Mutable<T>,使类型T的全部属性可变(非只读)。例如:interfaceTodo{readonlytitle:string;readonlydescription:string;......
  • TypeScript 函数重载
    函数参数的类型可以使用联合类型?,让我们传递的值可以有多种类型的情况。下面是写的一个简单函数,参数x可以有number、string两种类型,返回值也是。functionreverse(x:......
  • Typescript类型体操 - PartialRequired
    题目中文实现一个通用的RequiredByKeys<T,K>,它接收两个类型参数T和K。K指定应设为必选的T的属性集。当没有提供K时,它就和普通的Required<T>一样使所有的属性成为必选的......
  • TypeScript(一)基本使用
    一:导入TypeScriptnpmitypescript或者npmitypescript-g(全局导入) 二:编译Ts文件为Js(道理跟Sass转Css一样)在当前文件目录终端中输入:tsc文件名称.ts然后就......
  • 03:TypeScript — 从初学者到专家 |对象、数组和函数
    03:TypeScript—从初学者到专家|对象、数组和函数级别:初学者我们已经了解了什么是变量以及如何使用语句设置它们。我们还看到了可用于指定值类型的不同原始类型。当我......