首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

获取字符串值形式的typescript泛型类型

获取字符串值形式的 TypeScript 泛型类型,可以使用typeof操作符和条件类型来实现。

下面是获取字符串值形式的 TypeScript 泛型类型的示例代码:

代码语言:txt
复制
type GetTypeString<T> = T extends string ? T : never;
type MyGenericType = GetTypeString<number>; // 返回 never
type MyStringType = GetTypeString<"Hello">; // 返回 "Hello"
type MyArrayType = GetTypeString<string[]>; // 返回 never

在上面的代码中,我们定义了一个条件类型GetTypeString<T>,它接受一个泛型参数T。如果T是一个字符串类型(T extends string),则返回T本身;否则返回never类型。

使用GetTypeString条件类型,可以在编译时获取字符串值形式的 TypeScript 泛型类型。例如,GetTypeString<number>返回的结果是never,因为number不是一个字符串类型;而GetTypeString<"Hello">返回的结果是"Hello",因为"Hello"是一个字符串类型。

这种技巧可以用于类型转换、类型约束等场景,可以方便地处理泛型类型的字符串表示。

推荐的腾讯云相关产品:无

请注意,腾讯云产品相关信息请参考腾讯云官方文档。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

TypeScript 基本类型使用

typescript 基础类型 下面只介绍一些区别于 JavaScript 特殊类型 Tuple 元组 元组类型允许表示一个已知元素数量和类型数组,各元素类型不必相同。...例如, never类型是那些总是会抛出异常或根本就不会有返回函数表达式或箭头函数表达式返回类型; 变量也可能是 never类型,当它们被永不为真的类型保护所约束时。...infiniteLoop(): never { while (true) { } } 复制代码 typescript 先来谈谈使用场景 模拟一个场景,当我们要使用一个服务器提供不同数据...正解: 使用 typescript (Generic) 先简单来说一下什么是? ==就是表示一个类型变量,用他来代替某个实际类型用于编程。...close', (payload: number)){} const setType =new Set { message: string; close: number; } //

2.5K40
  • 《现代Typescript高级教程》类型体操

    现代JavaScript高级小册 深入浅出Dart 现代TypeScript高级小册 类型体操 类型体操(Type Gymnastics)是 TypeScript 中高级类型系统重要组成部分...number 在上面的示例中,identity 函数使用类型参数 T,并返回与输入类型相同。...以下是一些常见官方内置型函数: Partial Partial 是 TypeScript一个内置类型,它可以将给定类型 T 中所有属性转换为可选属性。...总结 类型体操是 TypeScript 中强大类型系统关键组成部分。通过使用,我们可以创建可重用、灵活和类型安全代码。...通过结合、extends 关键字、内置型函数和其他高级类型概念,我们能够在 TypeScript 中编写更复杂、类型安全代码,并利用 TypeScript 强大类型系统来提高代码可读性、可维护性和可扩展性

    33830

    切面获取方法T真实类型

    制造问题是起头这三个方法。如 selectByPrimaryKey这个方法,由于这是一个方法,其返回为T 。...而ServiceMock录制回放基本套路就是通过获取到被录制方法返回类型来进行回放。...而如果是方法,那么returnType结果就是“T”或者是”List”, 这也就意味着以下反序列化方法执行失败。...这样,只要获取到了切点中正在执行方法返回(原始类型或者是某个类实例),然后根据返回获取到Class,并最终获取到Type。这样就可以继续愉快地进行反序列化了。...().equals("T") || returnType.getTypeName().equals("java.util.List")) { 对于T 或者是List方法,就在执行时获取一下执行类型并记录

    2.3K30

    TypeScript-在约束中使用类型参数

    约束中使用类型参数概述一个被另一个约束, 就叫做 约束中使用类型参数博主需求: 定义一个函数用于根据指定 key 获取对象 value:let getProps = (obj: object..., key: string): any => { return obj[key];}如上代码在编译器当中是会报错,报错原因就是它不知道 obj[key] 返回到底是不是 any 这个类型,...a 和 b 都是存在 key,如果这个时候我要获取一个 c key value 那么就直接是 undefined 了,说明一个问题,代码不够健壮, 明明 obj 中没有 c 这个 key 但是却没有报错...,那么这时就可以利用 在约束中使用类型参数 来解决该问题,代码如下:图片let getProps = (obj: T, key: K): any => {...,key 只能是在 obj 当中存在属性,如果指定 key 在 obj 当中不存在就不允许获取图片图片最后本期结束咱们下次再见~ 关注我不迷路,如果本篇文章对你有所帮助,或者你有什么疑问,欢迎在评论区留言

    19510

    【Flutter】Dart ( 类 | 方法 | 特定类型约束 )

    接口 , 方法 提供复用性 , 支持类型不确定数据类型 ; 类 : 提高代码复用程度 ; 方法 : 参数或返回类型约束 , 参数或返回类型必须符合对应类型 , 使用时会进行类型检查约束...String value = cache.getCachedItem("name"); print("测试, 类型字符串, 获取缓存内容为 ${value}"); // 创建类对象...("age"); print("测试, 类型整型, 获取缓存内容为 ${value2}"); } } 打印结果 : I/flutter (24673): 测试, 类型字符串, 获取缓存内容为...String value = cache.getCachedItem("name"); print("测试, 类型字符串, 获取缓存内容为 ${value}"); /...: I/flutter (24673): 测试, 类型字符串, 获取缓存内容为 Tom I/flutter (24673): 测试, 类型整型, 获取缓存内容为 18 I/flutter (

    5.2K00

    如何通过Java反射获取类型信息

    前言 关于Java,很多人都有一个误解,认为Java代码在编译时会擦除类型,从而在运行时导致没法访问其类型,这其实并不完全正确,因为有一部分信息是可以在运行时动态获取,这部分信息基本能够满足我们日常开发中大多数场景...使用场景 在讨论如何用反射获取类型之前,我们先来回顾下,在Java里面什么时候会使用,了解这个问题之后,我们才能继续思考如何用反射获取类型。...但类似第二种场景中通过对象指针引用,我们是可以通过反射获取类型信息,但要注意局部变量是没法获取信息。...在Java里面可以通过反射获取信息场景有三个,分别是: (1)成员变量 (2)方法参数 (3)方法返回 注意,通过对象本身也是没法获取。...不能通过发射获取类型信息场景有二个,分别是: (1)类或接口声明信息 (2)局部变量信息 获取方法返回类型 如下面定义一个测试类: public class MyClass

    9.3K21

    java typereference_Java | Jackson TypeReference获取类型信息「建议收藏」

    本文以Jackson为例介绍TypeReference实现涉及反序列化,及TypeReference实现原理。...对于获取类型信息场景,TypeReference是一个可以参考通用解决方案。 实例 Jackson ObjectMapperreadValue可以将Json字符串反序列化为Java对象。...换一种方式实现 既然不能用List.class, 那如果我告诉ObjectMapperreadValue方法,我要是List类型,但返回类型是List, 会发生什么呢?...抽象类TypeReference用于通过子类获取完整类型信息。...ClassgenericInfo: 总结Jackson ObjectMapper 提供了TypeReference支持对对象反序列化; 对于获取类型信息场景,TypeReference是一个可以参考通用解决方案

    2.5K10

    类、方法、类型通配符使用

    类、方法、类型通配符使用 一.类        声明和非声明类似,除了在类名后面添加了类型参数声明部分...和方法一样,类型参数声明部分也包含一个或多个类型参数,参数间用逗号隔开。一个参数,也被称为一个类型变量,是用于指定一个类型名称标识符。...,运行结果如下所示: 整型为 :10 字符串为 :菜鸟教程 二.方法        你可以写一个方法,该方法在调用时可以接收不同类型参数。...类型参数能被用来声明返回类型,并且能作为方法得到实际参数类型占位符。 方法体声明和其他方法一样。...List类型,所以name,age,number都可以作为这个方法实参,这就是通配符作用 2、类型通配符上限通过形如List来定义,如此定义就是通配符接受Number及其下层子类类型

    3.8K40

    全面解析 TypeScript 二三事

    TypeScript 通过类型声明 使得 javascript 拥有了强类型校验。而类型声明中最重要一环,通过运用 , 可以让我们更好地扩展类型声明。...在 TypeScript 中,通过在类、接口和函数声明中引入类型变量来实现。...这里我们可以看一个函数定义示例:红色方框:定义类型 SomeType黄色方框:使用SomeType来约束函数参数是 SomeType类型数组绿色方框:约束函数返回 SomeType...本身需要注意是,本身不是 TypeScript 类型,而是类型参数,即调用函数时将指定类型占位符。...,也是通过 = 来声明一个默认类型使用默认类型,可以让我们在调用时候,如果不传递类型也能获取到默认类型应用到具体变量约束上。

    10810

    初探 TypeScript函数基本类型接口类内置对象

    : 参数类型和返回类型;在 TypeScript 类型定义中, => 用来表示函数定义,左边是输入类型,需要用括号括起来,右边是输出类型,和 ES6 箭头函数不一样 可选参数和默认参数 TypeScript...;是一种特殊变量,只用于表示类型而不是 型函数 function identity(arg:T):T { return arg; } let output = identity<string...,这样我们就能清楚知道使用具体是哪个类型 接口 interface GenericIdentityFn { (arg:T):T } function identity(arg...:T):T { return arg } let myIdentity:GenericIdentityFn = identity 复制代码 类 (=>类学习) 类看上去和接口差不多,类使用...new GeneriNumber() 复制代码 类有两个部分:静态部分和实例部分,类指实例部分,所以静态属性不能使用这个类型,定义接口来描述约束条件 约束 interface

    7.3K31

    深入学习下 TypeScript

    TypeScript 完全支持,以此将类型安全性引入到接受参数和返回组件中,这些参数和返回类型,在稍后代码中使用之前是不确定。...您还可以使用类型来创建原始类型(例如字符串和布尔别名,这是接口无法做到TypeScript接口是表示类型结构强大方法。...如果仔细查看您函数,您会发现参数列表或 TypeScript 能够推断其任何其他地方都没有使用。这意味着调用代码在调用您函数时必须显式传递此类型。...这意味着 TypeScript 会将数据识别为具有字符串类型键和任意类型对象,从而允许您访问其属性。 类型参数约束 在某些情况下,类型参数需要只允许将某些形状传递给。...要为您创建额外特殊层,您可以对您参数施加约束。 假设您有一个存储限制,您只能存储所有属性都具有字符串对象。

    39K30

    TypeScript:一个好价值

    是种一旦理解就乐在其中概念,所以让我只是先从这样描述它开始吧: 之于类型(Types),犹类型之于变量也 换言之,为你提供了一种不用指定特别某种类型就能使用若干类型方式。...function identity(value: number):number { return value; } 上面的函数对于数字工作良好,那字符串呢?或布尔?自定义类型又如何?...TypeScript 来拯救 正如我曾 尝试 说那样:一个就像若干类型一个变量,这意味着我们可以定义一个表示任何类型变量,同时能保持住类型信息。后者是关键,因为那正是 any 做不到。...现在,让我们将其转换为类型安全 TypeScript 并看看能如何帮助我们: type Person = { name: string, age: number, city...你可以声明式界定你传入会匹配字符串 name、age 或 city。本质上你声明了一个枚举,而当你这么想时候,就没之前那么兴奋了吧。

    1.5K20

    浅谈TypeScriptT和any区别

    使用any 简单粗暴,任何类型都可以,但是失去了ts类型保护优势。 2. 使用 不预先指定具体类型,而是在使用时候在指定类型限制一种特性。...如果这个函数传入类型和返回类型相同,使用any类型,就无法实现这个约束。 因此,需要一种方法使返回类型与传入参数类型是相同。...这里,我们使用了类型变量,它是一种特殊变量,只用于表示类型而不是。...如果你去超市破零钱,那售货员给你还是钱,类型相同,可以用。...any就不用过多讲解使用方式,和其他类型一样,主要说说使用 1.在函数中使用 function echo(arg:T):T{ return arg } const result=echo

    1.9K1210

    深入学习下 TypeScript

    TypeScript 完全支持,以此将类型安全性引入到接受参数和返回组件中,这些参数和返回类型,在稍后代码中使用之前是不确定。...您还将探索一个异步示例,了解何时将类型参数直接传递给您,以及如何为您类型参数创建约束和默认。...如果仔细查看您函数,您会发现参数列表或 TypeScript 能够推断其任何其他地方都没有使用。这意味着调用代码在调用您函数时必须显式传递此类型。...这意味着 TypeScript 会将数据识别为具有字符串类型键和任意类型对象,从而允许您访问其属性。类型参数约束在某些情况下,类型参数需要只允许将某些形状传递给。...要为您创建额外特殊层,您可以对您参数施加约束。假设您有一个存储限制,您只能存储所有属性都具有字符串对象。

    15310
    领券