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

Typescript -文字类型推断-不同于字符串和数字的行为

Typescript是一种由微软开发的开源编程语言,它是JavaScript的超集,为JavaScript添加了静态类型检查和其他特性。在Typescript中,文字类型推断是指根据变量的赋值来推断其类型。

不同于字符串和数字的行为:

  • 字符串类型推断:当变量被赋值为一个字符串时,Typescript会将该变量的类型推断为字符串类型。例如:
代码语言:txt
复制
let message = "Hello"; // 推断message为字符串类型
  • 数字类型推断:当变量被赋值为一个数字时,Typescript会将该变量的类型推断为数字类型。例如:
代码语言:txt
复制
let count = 10; // 推断count为数字类型
  • 文字类型推断:当变量被赋值为一个文字时,Typescript会将该变量的类型推断为文字类型。文字类型是一种特殊的字符串类型,它只能被赋值为特定的文字。例如:
代码语言:txt
复制
let status: "active" | "inactive"; // 声明一个文字类型的变量status,只能被赋值为"active"或"inactive"
status = "active"; // 合法赋值
status = "inactive"; // 合法赋值
status = "pending"; // 非法赋值,编译错误

文字类型推断在以下场景中非常有用:

  • 状态标识:当需要限制变量只能取特定的状态值时,可以使用文字类型推断。例如,表示订单状态的变量只能取"pending"、"processing"或"completed"。
  • 事件类型:当需要定义特定的事件类型时,可以使用文字类型推断。例如,表示鼠标事件类型的变量只能取"click"、"hover"或"drag"。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云官网:https://cloud.tencent.com/
  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版:https://cloud.tencent.com/product/cdb_mysql
  • 人工智能平台(AI Lab):https://cloud.tencent.com/product/ailab
  • 云存储(COS):https://cloud.tencent.com/product/cos
  • 区块链服务(TBC):https://cloud.tencent.com/product/tbc
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

TypeScript 演化史 -- 7】映射类型更好字面量类型推断

更好字面量类型推断 字符串数字布尔字面量类型(如:"abc",1true)之前仅在存在显式类型注释时才被推断。从 TypeScript 2.1 开始,字面量类型总是推断为默认值。...在 TypeScript 2.0 中,类型系统扩展了几个新字面量类型: boolean 字面量类型 数字字面量 枚举字面量 不带类型注解 const 变量或 readonly 属性类型推断为字面量初始化类型...字符串字面量扩展类型是 string,数字字面量扩展类型是number,true 或 false 字面量类型是 boolean,还有枚举字面量扩展类型是枚举。.../ 推断类型: "https://example.com/" 由于常量字符串变量值永远不会改变,因此推断类型会更加具体。...推断字面量类型有用性 你可能会问自己,为什么推断 const 变量 readonly 属性为字面量类型是有用

2.8K10

TypeScript 演化史 — 第七章】映射类型更好字面量类型推断

更好字面量类型推断 字符串数字布尔字面量类型(如:"abc",1true)之前仅在存在显式类型注释时才被推断。从 TypeScript 2.1 开始,字面量类型总是推断为默认值。...在 TypeScript 2.0 中,类型系统扩展了几个新字面量类型: boolean 字面量类型 数字字面量 枚举字面量 不带类型注解 const 变量或 readonly 属性类型推断为字面量初始化类型...字符串字面量扩展类型是 string,数字字面量扩展类型是number,true 或 false 字面量类型是 boolean,还有枚举字面量扩展类型是枚举。.../ 推断类型: "https://example.com/" 由于常量字符串变量值永远不会改变,因此推断类型会更加具体。...推断字面量类型有用性 你可能会问自己,为什么推断 const 变量 readonly 属性为字面量类型是有用

3.8K40
  • TypeScript变量声明:变量声明语法、变量作用域、变量类型推断类型断言

    TypeScript 是一种由微软开发静态类型编程语言,它是 JavaScript 超集,并且可以在编译时进行类型检查。...在 TypeScript 中,变量声明是非常重要一个概念,它定义了变量名称类型。通过正确地声明变量,我们可以增强代码可读性、可维护性可扩展性。...本文将详细介绍 TypeScript变量声明,包括变量声明语法、变量作用域、变量类型推断类型断言等内容。...类型推断类型断言TypeScript 具有强大类型推断能力,它可以根据上下文自动推断变量类型。例如,如果我们在定义变量时直接赋值,TypeScript 可以推断出变量类型。...总结本文详细介绍了 TypeScript变量声明,包括变量声明语法、变量作用域、变量类型推断类型断言等内容。

    69920

    python数字类型字符串类型学习总结

    参考链接: Python数字类型转换和数学 1、数字类型:  整数类型(二进制(以0b或0B开头)、八进制(以0o或者0O开头)、十进制、十六进制(以0x或者0X开头)  浮点数类型 (带有小数点数据...int(x),float(x),complex(x),将x转换成相应数据类型  可以使用函数type(),返回数据类型,来确定数据类型  2、字符串类型:  字符串是用双引号或者单引号括起来一个或者多个字符...字符串使用实例:输入一个月份数字返回对应月份名称缩写  代码如下:  months="JanFebMarAprMayJunJulAugSepOctNovDec"  n=input("请输入月份数(1...-12):")  pos=(int(n)-1)*3  monthAbbrev=months[pos:pos+3]  print("月份简写是"+monthAbbrev+".")  1、数字类型:  整数类型...字符串使用实例:输入一个月份数字返回对应月份名称缩写  代码如下:  months="JanFebMarAprMayJunJulAugSepOctNovDec"  n=input("请输入月份数(1

    74920

    TypeScript 演化史 -- 9】object 类型 字符串索引签名类型点属性

    TypeScript 2.2 引入了一个新 object 类型。它表示任何非基本类型。...,TypeScript定义了几个具有相似名称但表示不同概念类型: object Object {} 上面已经讲过 object 类型,现在来看看 Object {}。...Object]" obj.toString(); 字符串索引签名类型点属性 在 TypeScript 2.2 之前,如果想访问带有字符串索引签名类型任意属性,就必须使用[]符号,但不允许使用.符号访问...在许多情况下,不再需要像这样令人不快变通方法: // 笨拙方式 (portNumbers as any).http = 80; 请注意,类型必须定义显式字符串索引签名,以便用.符号访问对任意属性都是类型正确...给定适当字符串索引签名,在这些情况下,就会获得更少类型错误,并且不再需要使用类型注释注释点属性访问,这只是为了让编译器通过。

    1.3K10

    【译】2019年开始使用Typescript

    A: ${punchline} `; 复制代码 number 任何浮点数都给定为数字类型。作为TypeScript一部分,支持四种类型数字文字是二进制,十进制,八进制十六进制。...,可以是数字或者字符串。...类型推断 幸运是,你不需要在代码中全部位置指定类型,因为TypeScript具有类型推断类型推断TypeScript编译器用来自行决定类型(内容)。...最佳通用类型推断 从多种可能类型推断类型时,TypeScript使用最佳通用类型算法来选择适用于所有其他候选类型类型。...类型注释 当类型推断系统不够用时,你需要在变量对象上声明类型。 基本类型 在(上面)基本静态类型章节介绍中,所有的类型都使用:后跟类型名来声明。

    2.2K20

    2019年开始使用Typescript

    A: ${punchline} `; number 任何浮点数都给定为数字类型。作为TypeScript一部分,支持四种类型数字文字是二进制,十进制,八进制十六进制。...,可以是数字或者字符串。...类型推断 幸运是,你不需要在代码中全部位置指定类型,因为TypeScript具有类型推断类型推断TypeScript编译器用来自行决定类型(内容)。...最佳通用类型推断 从多种可能类型推断类型时,TypeScript使用最佳通用类型算法来选择适用于所有其他候选类型类型。...类型注释 当类型推断系统不够用时,你需要在变量对象上声明类型。 基本类型 在(上面)基本静态类型章节介绍中,所有的类型都使用:后跟类型名来声明。

    88020

    TypeScript 演化史 — 第九章】object 类型 字符串索引签名类型点属性

    TypeScript定义了几个具有相似名称但表示不同概念类型: object Object {} 上面已经讲过 object 类型,现在来看看 Object {}。...= "value"; 但是,仍然可以使用在 Object 类型上定义所有属性方法,这些属性方法通过JS 原型链调用: // Type {} const obj = {}; // "[object...Object]" obj.toString(); 字符串索引签名类型点属性 在 TypeScript 2.2 之前,如果想访问带有字符串索引签名类型任意属性,就必须使用[]符号,但不允许使用.符号访问...在许多情况下,不再需要像这样令人不快变通方法: // 笨拙方式 (portNumbers as any).http = 80; 请注意,类型必须定义显式字符串索引签名,以便用.符号访问对任意属性都是类型正确...给定适当字符串索引签名,在这些情况下,就会获得更少类型错误,并且不再需要使用类型注释注释点属性访问,这只是为了让编译器通过。

    1.5K30

    分享 30 道 TypeScript 相关面的面试题

    答案:联合类型是一种表示一个值可以属于多种类型之一方式。例如,如果函数接受字符串数字作为参数,则可以将其键入为 function example(arg: string | number)。...例如,[string, number] 元组类型期望第一个元素是字符串,第二个元素是数字。这与常规数组形成对比,常规数组只知道元素类型,而不知道顺序或计数。...答案:可区分联合(也称为标记联合)是一种结合了联合类型文字类型类型保护模式。 当一个对象可以有多个形状但共享一个公共属性(通常是文字类型)时,可以使用它们,该属性可用于缩小其确切形状。...答:TypeScript 类型推断是指编译器在没有显式类型注释情况下自动推断分配类型能力。虽然鼓励显式类型,但编译器会尽可能使用上下文(如变量初始化、返回语句等)来推断类型。...30、解释在高级类型场景中如何以及为何使用 keyof typeof 运算符。 答案:keyof 运算符生成给定类型已知公共属性名称并集,这对于限制可能字符串值或创建映射类型很有用。

    77830

    TS - Index Signatures

    参数以接受键为字符串、值为数字对象?...让我们找到什么是TypeScript索引签名以及何时需要它们。 1.为什么要索引签名 索引签名思想是在您只知道键类型时键入未知结构对象。...3.1不存在财产 如果您尝试访问索引签名为{ [key: string]: string }对象不存在属性会发生什么? 正如预期那样,TypeScript将值类型推断为string。...例如,如果您尝试使用字符串文字类型并集作为索引签名中键,则会出错: interface Salary { // Type error: // An index signature parameter...要将键类型限制为特定字符串并集,则使用Recordutilty类型是一个更好主意。索引签名不支持字符串文字类型并集。

    8410

    语法-类型注解

    TypeScript 是一种面向对象编程语言。 面向对象主要有两个概念:对象类。 对象:对象是类一个实例(对象不是找个女朋友),有状态行为。...例如,一条狗是一 个对象,它状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。 类:类是一个模板,它描述一类对象行为状态。 方法:方法是类操作实现步骤。...打印输出 7 # 联合类型 联合类型(union Types) 定义一个变量,可以接收多种类型值 举个例子,假设你有一个名为 result 变量,你希望它可以保存数字或者字符串类型值。...你可以这样声明它类型: let result: number | string; 现在,result 变量可以存储数字类型值,也可以存储字符串类型值。...例如: result = 42; // 保存数字类型值 result = "Hello"; // 保存字符串类型值 使用联合类型,在类型声明中将这两种类型联合起来,表示该变量可以是其中任意一种类型

    17020

    如何在TypeScript中使用基本类型

    这些特性为开发人员提供了 JavaScript 动态特性灵活性,但也允许更可靠代码库,其中可以在编译时使用类型信息来检测可能在运行时导致错误或其他意外行为问题。...,我们没有将语言变量类型设置为字符串,但 TypeScript 推断了该类型,因为我们在声明它时分配了一个字符串值。...请注意,我们在本节中创建大多数变量都可以省略它们类型,因为 TypeScript 可以推断它们,但是,我们为了学习目的而明确说明了类型。...String string字符串用于文本数据类型,如字符串文字或模板字符串。...`; 在这个代码块中,语言(language)消息(message)都被分配了string字符串类型。模板文字仍然是一个字符串,即使它是动态确定

    3.7K10

    使用 TypeScript 开发你项目

    JavaScript 是动态类型,只能在 runtime 时进行类型检查;同时它也给重构大型项目带来了困扰,在一定程度上,它是不「易读」。而 TypeScript 能够很好解决上述问题。...: 在这个简单例子里,我们认为 someMethod 参数一个数组,可是实际情况并不是,它是一个数字。...改为 TypeScript 加上简单类型推断时: 可见,它在编译前就已经给出了错误提示。...不同于 JSDoc,TypeScript 提供类型声明模块接口形成了文档形状,提供程序行为提示,并在编译时会校验程序正确性。 改动下上个例子: 当然,对大型项目来说,这可能要复杂多。...Function type 先从一个简单 Function type 入手: (arg: number) => string 在上面的一个 Function type 中,它接收一个数字类型参数,并返回一个字符串类型

    11610

    使用 TypeScript 开发你项目

    JavaScript 是动态类型,只能在 runtime 时进行类型检查;同时它也给重构大型项目带来了困扰,在一定程度上,它是不「易读」。而 TypeScript 能够很好解决上述问题。 ?...在这个简单例子里,我们认为 someMethod 参数一个数组,可是实际情况并不是,它是一个数字。理所当然,它报错了。 改为 TypeScript 加上简单类型推断时: ?...不同于 JSDoc,TypeScript 提供类型声明模块接口形成了文档形状,提供程序行为提示,并在编译时会校验程序正确性。 改动下上个例子: ? 当然,对大型项目来说,这可能要复杂多。...Function type 先从一个简单 Function type 入手: (arg: number) => string 复制代码 在上面的一个 Function type 中,它接收一个数字类型参数...,并返回一个字符串类型

    1.4K20

    TypeScript 之 More on Functions

    (Inference) 注意在上面的例子中,我们没有明确指定 Type 类型类型是被 TypeScript 自动推断出来。...TypeScript推断 longest 返回类型,所以返回值类型推断在泛型函数里也是适用。...第一个函数可以推断出返回类型是 number,但第二个函数推断返回类型却是 any,因为 TypeScript 不得不用约束类型推断 arr[0] 表达式,而不是等到函数调用时候再去推断这个元素...object 不同于空对象类型 { },也不同于全局类型 Object。很有可能你也用不到 Object。 object 不同于 Object ,总是用 object!...,TypeScript 并不会假定数组是不变(immutable),这会导致一些意外行为: // 类型推断为 number[] – “an array with zero or more numbers

    2.1K20

    杀手级TypeScript功能:const断言

    语法是一个类型断言,用 const 代替类型名称(例如 123 as const)断言构造新文字表达式时,我们可以向语言发出以下信号: 该表达式中字面类型不应被扩展(例如:不能从“hello”转换为字符串...没有类型扩展字面类型 并不是每个人都知道类型扩展,并且由于某些意外行为而首次发现它时都会觉得意外。...这个 action action creator 将是一个函数,它接受一个数字作为参数,并返回一个具有属性为 type、值为 SET_COUNT 类型为 number payload 属性对象...这不是很安全类型,我们可以保证是 type 是一个字符串。 redux 中每个 action 都有一个 type 属性,它是一个字符串。...resetCount 返回类型推断出一个很好 action 联合。

    1.2K10
    领券