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

杀手级的TypeScript功能:const断言

它的语法是一个类型断言,用 const 代替类型名称(例如 123 as const)断言构造新的文字表达式时,我们可以向语言发出以下信号: 该表达式中的字面类型不应被扩展(例如:不能从“hello”转换为字符串...) 对象字面量获取只读属性 数组文字成为只读元组 感觉有点枯燥,还有点混乱。...应用程序可能需要一个全局 count 属性,为了更新这个 count 属性,我们可以调度类型为 'SET_COUNT' 的动作,它只是将全局 count 属性设置为一个新的值,这是一个字面对象属性。...数组字面量成为只读元组 在 TypeScript 3.4 之前,声明一个字面量数组将被扩展并且可以修改。 使用 const,我们可以将字面量锁定为其显式值,也不允许修改。...,而不是去编写多余的样板类型。

1.2K10

TypeScript类型声明

)JS数组和TS数组之间的区别JS中的数组可以是字符串、数字等其他类型的数据,而TS中的数组是纯数字类型(number)的集合,如果在TS中定义包含多个类型的数组,那就是元组。...] = ['a'](2)数组的数据类型不一致联合数据声明:比如(string|number)[],声明一个数组,数组类型为字符串、数字。...枚举成员表达式的判断条件如下:枚举表达式字面量(主要是字符串字面量或数字字面量)对之前定义的常量枚举成员的引用带括号的常量枚举表达式一元运算符 ++、 -- 常量枚举表达式是二元运算符 + 、-、*、/...常量demo如下:enum constantEnum{ num, //枚举表达式字面量 age = num, //引用常量枚举成员 count = 2 字面量参与二元运算符...来缩小变量的类型,强制让ts编译器相信我们在做什么操作六、void(空类型)声明对象类型为void时返回为空值function func(): void { }声明一个变量为void 时只能将它赋值为

37330
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    理解 TypeScript 类型拓宽

    因为字符串字面量型 “x” 可以赋值给 “x”|”y”|”z”,所以代码会通过类型检查器的检查。 然而,const 并不是万灵药。对于对象和数组,仍然会存在问题。...前面的 mixed 示例说明了数组的问题:TypeScript 应该推断 mixed 类型为元组类型吗?它应该为 mixed 推断出什么类型?对象也会出现类似的问题。...二、非拓宽字面量类型 你可以通过显式地将变量标注为字面量类型来创建非拓宽字面量类型的变量: // Type "https" (non-widening) const stringLiteral: "https..." = "https"; // Type 10 (non-widening) const numericLiteral: 10 = 10; 将含有非拓宽字面量类型的变量赋给另一个变量时,比如以下示例中的...假设出于某种原因,我们希望保留数组中字符串字面量类型的位置信息,这时我们可以显式地将 protocols 的类型设置为元组类型: // Type "http" (widening) const http

    1.6K40

    让你的TypeScript代码更优雅,这10个特性你需要了解下

    自动推断数组类型 在下面的例子中,TypeScript 会自动推断 arr 的类型为 (number | string | boolean)[],因为数组中包含了数字、字符串和布尔值。...三、巧用 TypeScript 模板字面量类型 模板字面量类型(Template Literal Types)是 TypeScript 提供的一种强大工具,让你可以通过字符串字面量来创建更加表达性和易于管理的字符串类型...通过这种方式,你可以定义复杂的字符串组合类型,提升代码的可读性和可维护性。下面我们来看一个具体的例子。 1、模板字面量类型的基本用法 模板字面量类型允许你使用字符串字面量来创建新的类型。...然后,通过模板字面量类型 {Size},我们生成了一个新的类型 ColoredSize,表示颜色和尺寸的组合。 2、 模板字面量类型的应用 使用模板字面量类型,我们可以轻松地创建复杂的字符串组合类型。...当函数返回 true 时,TypeScript 会在其后的代码块中将变量的类型缩小到指定的类型。

    27010

    第3章 | 基本数据类型 | 布尔类型,字符,元组,指针类型

    因此,String 会将其文本表示为 UTF-8 字节序列,而不是字符数组。 字符字面量是用单引号括起来的字符,比如 '8' 或 '!'。...还可以使用全角 Unicode 字符:' 錆 ' 是一个 char 字面量,表示日文汉字中的 sabi(rust)。 与字节字面量一样,有些字符需要用反斜杠转义,如表 3-10 所示。...例如,字符字面量 '\u{CA0}' 表示字符“ಠ”,这是 Unicode 中用于表示反对的卡纳达语字符“ಠ_ಠ”。同样的字面量也可以简写成 'ಠ'。...3.4 元组 元组是各种类型值的值对或三元组、四元组、五元组等(因此称为 n-元组或元组)。可以将元组编写为一个元素序列,用逗号隔开并包裹在一对圆括号中。...字面量 ("lonely hearts",) 就是一个包含单个字符串的元组,它的类型是 (&str,)。在这里,值后面的逗号是必需的,以用于区分单值元组和简单的括号表达式。

    9410

    解锁 C# 11:您必须了解的 15 个新功能(带有真实示例)

    原始字符串字面量 原始字符串字面量使得处理多行字符串更为简便,无需对特殊字符进行转义,也不用担心缩进问题。....*/ } 优缺点: 优点:减少了为不同类型创建多个特性的需求。 缺点:增加了设计特性逻辑的复杂性。 实际应用场景:一个日志记录特性,它根据方法的返回类型以不同方式记录方法。 4....UTF-8字符串字面量 UTF-8字符串字面量有助于在处理UTF-8编码文本时优化内存使用。...缺点:为对象初始化增加了更多的样板代码。 实际应用场景:确保在创建配置对象时,始终具有诸如连接字符串、API密钥或用户数据等必需参数。 9....优缺点: 优点:减少与未初始化字段相关的错误,减少样板代码。 缺点:如果不希望自动设置默认值,可能会引入意外行为。 实际应用场景:在图形应用程序中,将结构体用于像点、颜色或尺寸这样的简单数据结构。

    16210

    这 5 个 TypeScript 的功能特征,你需要熟悉下

    它们是必须掌握的功能,需要在我们的日常开发中出现。 3、元组 什么是元组?我们来看看定义: “元组类型允许你用固定数量的元素来表达数组,这些元素的类型是已知的,但不必相同。...例如,你可能希望将一个值表示为一对字符串和一个数字。” ——TypeScript 的文档 最重要的一点是这些数组的值长度是固定的。...标签将有助于使我们的代码更具可读性和可维护性。 请注意,使用标记元组时有一个重要规则:标记元组元素时,元组中的所有其他元素也必须被标记。 4、映射类型 什么是映射类型?...它们是一种避免反复定义接口的方法。你可以将类型建立在另一种类型或接口的基础上,从而节省手动工作。 “当你不想重复时,有时一种类型需要基于另一种类型。...5、类型保护 类型保护是一组帮助我们缩小对象类型的工具。这意味着我们可以从更一般的类型转到更具体的类型。 有多种技术可以执行类型保护。在本文中,我们将只关注用户定义的类型保护。

    1.3K40

    Rust模式探索:写出更优雅的Rust代码

    模式的类型不止于此,Rust 模式还有它们自己的小型语言,如下表 模式类型 例子 注意事项 字面量 100 "name" 匹配一个确切的值;也允许匹配常量名称 范围 0 ..= 100 'a' ..=...由于当前页面的 Markdown 格式转换问题,竖线 | 会导致排版异常,因此上面表格使用中文 竖线 代替 | 字面量、变量、通配符 字面量可以是整数、浮点数、字符、字符串、布尔值等。...下面是整数字面量的一个例子 let x = 5; match x { 1 => println!("one"), 2 => println!...数组型模式通常用于过滤一些特殊情况的值,并且在处理那些不同位置的值具有不同含义的数组时也非常有用 let arr = [1, 2, 3]; match arr { [1, 2, 3] => println...("没有匹配") } 使用@模式绑定 @模式绑定的基本语法是在模式中使用@后跟一个变量名,这样可以在模式匹配成功时,将匹配到的值绑定到这个变量 enum Message { Move { x:

    13110

    巧用 TypeScript(三)

    数组与元组 创建一个数组很简单: const arr = [1]; 此时 TypeScript 将会推断 arr 类型为 number[]: arr.push('1'); // Error 当数组元素具有其它类型时...// 类型安全 字面量类型 在 JavaScript 基础上,TypeScript 扩展了一系列字面量类型,用来确保类型的准确性。...如创建一个字符串字面量: const a = 'hello'; // a 的类型是 'hello' a = 'world'; // Error 或者你也可以: let a: 'hello' = '...type C = A | B; type D = A & B; 对象字面量类型 对于对象字面量的类型,TypeScript 有一个被称之为 「Freshness 」的概念,它也被称为更严格的对象字面量检查...; // ok TypeScript 认为创建的每个对象字面量都是 「 fresh 」 状态;当一个 「 fresh 」 对象字面量赋值给一个变量时,如果对象的类型与变量类型不兼容时

    19010

    巧用 TypeScript(三)

    数组与元组 创建一个数组很简单: const arr = [1]; 复制代码 此时 TypeScript 将会推断 arr 类型为 number[]: arr.push('1'); // Error...复制代码 当数组元素具有其它类型时,可以通过类型注解的方式: const arr: Array = [1]; arr.push('1'); // OK arr.push...如创建一个字符串字面量: const a = 'hello'; // a 的类型是 'hello' a = 'world'; // Error 复制代码 或者你也可以: let a: 'hello...type C = A | B; type D = A & B; 复制代码 对象字面量类型 对于对象字面量的类型,TypeScript 有一个被称之为 「Freshness 」的概念,它也被称为更严格的对象字面量检查...; // ok 复制代码 TypeScript 认为创建的每个对象字面量都是 「 fresh 」 状态;当一个 「 fresh 」 对象字面量赋值给一个变量时,如果对象的类型与变量类型不兼容时

    1.1K20

    【Rust】001-基础语法:变量声明及数据类型

    ", input); // trim 把前后的空格、换行符这些空白字符都去掉,parse 将输入的字符串解析为 i64 类型,如果解析失败就报错 let number: i64 = input.trim...、字符串 代码演示 fn main() { // 使用字符串字面量声明一个不可变字符串 let hello_str = "Hello, world!"...("不可变字符串字面量:{}", hello_str); // 输出 "不可变字符串字面量:Hello, world!"...的长度是:13" } 执行结果 不可变字符串字面量:Hello, world! 可变字符串:Hello 追加后的可变字符串:Hello, world! 拼接后的字符串:Hello, world!...类型注解 let: 可以选择是否添加类型注解。 let x = 5; // 类型推断为 i32 let y: i64 = 6; // 显示类型注解 const: 必须添加类型注解。

    6510

    一起学Rust-变量及类型

    ("{}", var1.0); //通过“变量.索引”的形式访问指定元素。 ‍ 数组:数组同样也是需要在声明时确定数组的长度和类型,数组内元素的类型必须保持一致。...("{}", v4[v4.len() - 1]); //访问v4的最后一个元素,输出3; 字符串:字符串在Rust内是一个较为特殊的存在,类似于下面这种: //属于字面量字符串,值是确定的,类型为...&str let s:&str = "abc"; 这种字面量字符串是一种不可变引用类型, &str 其字符串本身是不可变的。...的方式与Vec很相似,所以说String类型可以对字符串本身进行修改,包括连接,修改等: //创建空字符串 let str:String = String::new(); //从abc字面量字符串创建String...类型 let str1:String = String::from("abc"); //从abc字面量字符串创建String类型,与上一句作用相同。

    1K50

    【Rust学习】06_切片

    String 中的值是否为空格,需要用 as_bytes 方法将 String 转化为字节数组:let bytes = s.as_bytes();接下来,使用 iter 方法在字节数组上创建一个迭代器...字符串字面量就是切片回想一下,我们讨论过将字符串文字存储在二进制文件中。现在我们知道了切片,我们可以正确理解字符串字面量了:let s = "Hello, world!"...;这里的 s 类型是 &str:它是一个指向二进制文件特定位置的切片。这也是字符串字面量是不可变的原因,&str 是不可变的引用。...但也有一种更通用的切片类型。请考虑以下数组:fn main() {let a = [1, 2, 3, 4, 5];}就跟我们想要获取字符串的一部分那样,我们也会想要引用数组的一部分。..., slice);}此切片的类型为 &[i32]。它的工作方式与字符串切片相同,通过存储对第一个元素的引用和一个集合总长度。您将把这种切片用于各种其他集合。

    8010

    TypeScript 4.2 Beta版本发布:带来诸多更新,营造更好的开发体验

    元组类型的 Rest 元素可放置于元组中的任何位置 在 TypeScript 中,元组类型用于建模具有特定长度和元素类型的数组。...在 TypeScript 4.1 中我们引入了一种新的类型:模板字面量类型。...于是它们可能与我们新的模板字符串类型不兼容。 在 TypeScript 4.2 中,模板字符串表达式现在总是以模板字面量类型开始。...与字符串字面量类型类似,如果我们将这些值其中之一分配给一个可变变量,这些类型就会消失,并通过称为拓宽(widening)的一种过程变成 string。...模板字面量表达式具有模板字面量类型 如前所述,模板字符串表达式现在以模板字面量类型开始。

    1.6K10

    TypeScript typeof 操作符

    当我们使用 const 断言构造新的字面量表达式时,我们可以向编程语言发出以下信号: 表达式中的任何字面量类型都不应该被扩展; 对象字面量的属性,将使用 readonly 修饰; 数组字面量将变成 readonly..., 20] let z = { text: "hello" } as const; type Z = typeof z; // let z: { readonly text: "hello"; } 数组字面量应用...const 断言后,它将变成 readonly 元组,之后我们还可以通过 typeof 操作符获取元组中元素值的联合类型,具体如下: type Data = typeof y[number]; //...type Data = 10 | 20 这同样适用于包含引用类型的数组,比如包含普通的对象的数组。.../ 首先通过typeof操作符获取Colors变量的类型,然后通过keyof操作符获取该类型的所有键, // 即字符串字面量联合类型 'red' | 'blue' type Colors = keyof

    6.4K52

    【Python】Python 字面量 ( Python 数据类型 | Python 字面量含义 | 使用 print 函数输出字面量 )

    文章目录 一、Python 数据类型 二、Python 字面量含义 三、使用 print 函数输出字面量 一、Python 数据类型 ---- Python 数据的常见类型 : Number 数字 :...0 ; String 字符串 : 由 若干数量的字符组成 , 字符包括 中文 , 英文 , 符号 , 数组 等 , 用于 描述文本 ; List 列表 : 有序的可变序列 , 使用频率最高 , 类似于...Java 中的 ArrayList ; Tuple 元组 : 有序的不可变序列 , 常用于有序记录一组不可变数据 ; Set 集合 : 无序不重复集合 , 常用于无序记录一组不重复的数据 , 相当于 Java...- 在 Python 代码中 , 可以 被直接写下来的固定值 , 就是字面量 ; 字面量 概念 类似于 常量 ; 在下面的 Python 代码中 , 123 12.13 "Tom" 123 是 整数类型字面量...; 12.13 是 浮点数类型字面量 ; “Tom” 是 字符串类型字面量 ; 三、使用 print 函数输出字面量 ---- 在 Python 中使用 print 输出字面量 , 将 字面量 作为函数参数传入

    49930

    Pandas数据类型转换:astype与to_numeric

    astype来实现: df = df.astype({'A': int, 'B': float})(二)常见问题及解决办法无效字面量当尝试将非数字字符串转换为数值类型时,可能会遇到“invalid...如果希望保留小数部分,应该选择适当的浮点类型而不是整数类型。三、to_numeric方法to_numeric 主要用于将字符串或其他非数值类型的序列转换为数值类型。...downcast: 指定是否尝试缩小数据类型范围,可选值为'integer'或'float'。...(一)优势自动识别缺失值to_numeric 可以自动将无法解析为数字的值替换为NaN,这使得它非常适合处理含有脏数据的数据集。优化内存占用使用downcast参数可以帮助减少不必要的内存消耗。...例如,当数据实际上只包含较小范围内的整数时,可以将其转换为更节省空间的整数类型。

    25110

    python之基础篇(五)——数据类型

    1 ^ 1 值为0     ~:按位求反 python数据类型之序列类型   序列表示索引为非负整数的有序对象集合,包括字符串、列表和元组。  ...python序列类型之字符类型   指定字符串字面量:把文本放入单引号、双引号或三引号中。  ...在python2.0系列当中,字符串字面量(str)对应于8位字符(8bit数据)或面向字节的数据,因此无法完全支持国际字符集(Unicode)。  ...s ^ t:求对称差集 容器、类型、对象的相关概念:   列表、元组、字典字面量可以在不使用续行符的情况下直接分布在多行上。...当对象引用技术为0时,就会由垃圾回收器回收此对象。使用del语句执行删除操作或者某次引用的修改超出当前对象的作用域时,对象的引用技术就会减少。

    1.5K40
    领券