首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏前端黑板报

    TypeScript - 字面类型

    TypeScript 中,字面类型(Literal Types)是指那些与特定字面量值严格对应的类型。字面类型包括字符串字面类型、数字字面类型和布尔字面类型。 使用字面类型可以提高代码的准确性和可读性,因为它们限制变量只能赋值为特定的字面。 字符串字面类型 字符串字面类型用于定义一个只能是特定字符串值的变量。 与 enum 的异同 字面类型(Literal Types)和枚举(Enums)在 TypeScript 中都用于限制变量的取值范围,但它们之间存在一些区别。 定义方式: • 字面类型: 字面类型使用字面直接定义变量的取值,例如 'success' | 'failure'。 注意事项 • 字面类型是 TypeScript 的基本类型之一,它们提供了一种方式来定义更精确的类型。 • 字面类型通常用于小型、固定的值集合,例如状态码、错误码或特定的配置选项。

    56910编辑于 2024-05-21
  • 来自专栏深度学习与python

    TypeScript 4.1 发布,新增模板字面类型

    作者 | Dylan Schiemann 译者 | 王者 TypeScript 团队发布了 TypeScript 4.1,其中包括功能强大的模板字面类型、映射类型的键重映射以及递归条件类型。 模板字面类型在社区中得到了非常热烈的响应。这个新特性提供了使用普通字符串字面类型作为其他类型定义的能力,这让创建和执行模板语法变得很容易。 模板字符串字面也可以动态生成,并根据模板字符串中的替换位置进行推断。 为了进一步支持模板字符串字面TypeScript 还添加了新的实用类型别名来修改字母大小写:Uppercase、Lowercase、Capitalize 和 Uncapitalize。 TypeScript 采用了 Apache 2 开源许可,欢迎开发者通过 TypeScript GitHub 项目参与贡献和反馈,并遵循 TypeScript 贡献指南和微软开源行为准则。

    3K20发布于 2021-02-05
  • 来自专栏蔻丁杂记

    typescript 中严格字面类型检查的理解

    assignment checking Strict object literal assignment checking by ahejlsberg · Pull Request #3823 · microsoft/TypeScript 如 https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes-oop.html#types-as-sets 所述,将 TS 原文链接: https://blog.jgrass.cc/posts/typescript-strict-object-literal-assignment-checking/ 本作品采用 「署名 4.0

    52200编辑于 2024-12-25
  • 来自专栏黯羽轻扬

    类型别名与字面类型_TypeScript笔记10

    存在两种字面类型:字符串字面类型与数值字面类型 字符串 字符串字面也具有类型含义,例如: let x: 'string'; // 错误 Type '"a"' is not assignable if (x === '1' && x === '2') { //... } } 这种类型完整性补充让TypeScript能够更细致地“理解”(静态分析)代码含义,进而发现一些不那么直接的潜在问题 == 'Bar') { //... } } P.S.类比起见,这里用字符串字面联合类型('Foo' | 'Bar')模拟枚举E,实际上枚举E等价于数值字面联合类型(0 | 1),具体见二 .数值枚举 从类型角度来看,联合枚举就是由数值/字符串字面构成的枚举,因此其成员也具有类型含义。 能够满足完整性覆盖要求,但需要额外定义一个assertNever函数 P.S.关于Never类型的更多信息,见基本类型_TypeScript笔记2 此外,还有一种不那么准确,但也有助于检查完整性的方法:

    1.4K30发布于 2019-06-12
  • 来自专栏前端之旅

    TypeScript 官方手册翻译计划【十一】:类型操控-模板字面类型

    项目地址:TypeScript-Doc-Zh,如果对你有帮助,可以点一个 star ~ 本章节官方文档地址:Template Literal Types 模板字面类型 模板字面类型基于字符串字面类型构建 其语法和 JavaScript 中的模板字符串一样,但在 TypeScript 中用于表示类型。和具体的字面类型一起使用的时候,模板字面会通过拼接内容产生一个新的字符串字面类型。 而模板字面类型正好就可以帮助我们做到这一点。 模板字面的推断 注意,目前为止我们还没有完全利用传入对象提供的信息。 实现这一点的关键在于:我们可以使用一个带有泛型的函数,从而确保: 第一个参数中的字面可以被捕获为一个字面类型 泛型的有效属性会构成一个联合类型,可以验证捕获的字面类型是否是该联合类型的一个成员 可以在泛型结构中通过按索引访问的方式去查看已验证属性的类型

    1.2K80编辑于 2021-12-06
  • 来自专栏终身学习者

    TypeScript 演化史 -- 8】字面类型扩展 和 无类型导入

    在我上一篇更好的类型推断的文章中,解释了 TypeScript 如何用 const 变量和 readonly 属性的字面始化来推断字面类型。 扩展字面类型 当使用 const 关键字声明局部变量并使用字面量值初始化它时,TypeScript 将推断该变量的字面类型: const stringLiteral = "https"; // Type 如果 TypeScript 为 let 变量推断一个字面类型,那么尝试为指定的值以外的任何值赋值都会在编译时产生错误。 : 字符串字面类型被扩展为 string 类型 数字字面类型被扩展为 number 类型 布尔字面类型被扩展为 boolean 类型 枚举字面类型被扩展为包含枚举的类型 到目前为止,咱们一直在研究字面类型的扩展 为了理解非扩展字面类型的是有用的,咱们再来看看扩展字面类型。

    1.5K10编辑于 2022-06-15
  • 来自专栏韩曙亮的移动开发专栏

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

    文章目录 一、Python 数据类型 二、Python 字面含义 三、使用 print 函数输出字面 一、Python 数据类型 ---- Python 数据的常见类型 : Number 数字 : 相当于 Java 中的 Set 集合 ; Dictionary 字段 : 无序的 键值对 集合 , 无序记录一组 键值对 数据 , 相当于 Java 中的 HashMap 集合 ; 二、Python 字面含义 ---- 在 Python 代码中 , 可以 被直接写下来的固定值 , 就是字面 ; 字面 概念 类似于 常量 ; 在下面的 Python 代码中 , 123 12.13 "Tom" 123 是 整数类型字面 ; 12.13 是 浮点数类型字面 ; “Tom” 是 字符串类型字面 ; 三、使用 print 函数输出字面 ---- 在 Python 中使用 print 输出字面 , 将 字面 作为函数参数传入 print 函数即可 ; 语法 : print(字面) 代码示例 : print(123) print(12.13) print("Tom") 执行结果 :

    84930编辑于 2023-04-04
  • 来自专栏XiaoLin笔记

    Go+字面

    package main println("Hello " + "World") 字面 概述 字面简单来说就是一种标记法,他有三种类型: 用于表示基础数据类型值的各种字面。 用户自定义各种复合数据类型的类型字面,可以自定义属性,和Java的对象有着异曲同工之妙。 用于表示复合数据类型的值的复合字面。 基本字面 所见即所得,基本的字面按照数据类型划分可以划分为五种: 整型字面 浮点型字面 复数类型字面 字符型字面 字符串字面 自定义字面 type Person struct { name string age int phone string } 复合字面 用于表示复合数据类型的值的复合字面,更确切地讲,它会被用来构造类型 Struct(结构体)、Array

    44920编辑于 2021-12-06
  • 来自专栏全栈程序员必看

    字面(笑笑语法)

    1.NSString *greeting = [NSString stringWithUTF8String:“hello”];

    46010编辑于 2022-07-07
  • 来自专栏C/C++基础

    Golang 字面的表示

    1.前言 在 Go 语言中,字面是用来表示固定值的表达式。Go 支持几种类型的字面,包括整型、浮点型、字符串、字符、布尔值以及复合类型(如数组、切片、结构体、映射等)。 下面我将介绍一些在 Go 语言中使用字面的常见技巧和最佳实践。 2.字面 整型和浮点型字面 十进制、八进制、十六进制和二进制表示: dec := 42 // 十进制 oct := 052 // 八进制,前缀是0 hex := ` 字符(rune)字面:表示单个 Unicode 字符。 char := 'A' // rune 类型,代表 Unicode 码点 布尔型字面 trueVal := true falseVal := false 复合类型字面 数组和切片:

    38910编辑于 2024-08-31
  • 来自专栏全栈开发工程师

    TypeScript】010-类型别名、字符串字面类型、元组、枚举

    2、字符串字面类型 字符串字面类型用来约束取值只能是某几个字符串中的一个。 上例中,我们使用 type 定了一个字符串字面类型 EventNames,它只能取三种字符串中的一种。 注意,类型别名与字符串字面类型都是使用 type 进行定义。 [3] === "Sun"); // false console.log(Days[3] === "Wed"); // true 上面的例子中,递增到 3 的时候与前面的 Sun 的取值重复了,但是 TypeScript 常数枚举表达式是 TypeScript 表达式的子集,它可以在编译阶段求值。 当一个表达式满足下面条件之一时,它就是一个常数枚举表达式: 数字字面 引用之前定义的常数枚举成员(可以是在不同的枚举类型中定义的)如果这个成员是在同一个枚举类型中定义的,可以使用非限定名来引用

    36700编辑于 2025-01-06
  • 来自专栏终身学习者

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

    更好的字面类型推断 字符串、数字和布尔字面类型(如:"abc",1和true)之前仅在存在显式类型注释时才被推断。从 TypeScript 2.1 开始,字面类型总是推断为默认值。 在 TypeScript 2.0 中,类型系统扩展了几个新的字面类型: boolean 字面类型 数字字面 枚举字面 不带类型注解的 const 变量或 readonly 属性的类型推断为字面初始化的类型 字符串字面扩展类型是 string,数字字面扩展类型是number,true 或 false 的字面类型是 boolean,还有枚举字面扩展类型是枚举。 因此,推断只读类属性的字面类型是合理的,因为它的值不会改变。 当然,TypeScript 不知道在运行时发生了什么:用 readonly 标记的属性可以在任何时候被一些JS 代码改变。 推断字面类型的有用性 你可能会问自己,为什么推断 const 变量和 readonly 属性为字面类型是有用的。

    3.7K10编辑于 2022-06-15
  • 来自专栏杨不易呀

    TypeScript-字面类型和TypeScript-可辨识联合、可辨识联合完整性检查

    字面概述字面就是源代码中一个 固定的值例如数值字面: 1, 2, 3, ...例如字符串字面: 'a', 'abc', ...在 TS 中我们可以把字面作为具体的类型来使用:当使用字面作为具体类型时 , 该类型的取值就必须是该字面的值type MyNum = 1;let value1: MyNum = 1;let value2: MyNum = 2;如上的代码在编译器当中 let value2: MyNum = 2; 是报错的,取值就必须是该字面的值可辨识联合概述具有共同的 可辨识特征一个类型别名, 包含了具有共同的 可辨识特征 的类型的 联合关于什么是共同的可辨识特征如下:// 正方形interface

    57820编辑于 2023-09-29
  • 来自专栏终身学习者

    TypeScript 演化史 -- 4】更多的字面类型 与 内置类型声明

    TypeScript 1.8 引入了字符串字面类型,用于将变量限制为可能的字符串值的有限集。在 TypeScript 2.0 中,字面类型不再局限于字符串。 以下字面类型已添加到类型系统中: boolean 字面类型 数字字面类型 枚举字面类型 接下来,来看看这个类型对应的一些事例。 数字字面类型 与字符串字面类型类似,我们可以将数值变量限制为已知值的有限集 let zeroOrOne: 0 | 1; zeroOrOne = 0; // OK zeroOrOne = 1; / / OK zeroOrOne = 2; // 错误:类型 '2' 不能分配给类型 '0 | 1' 在实践中,我们可以在处理端口号时使用数字字面。 在这种情况下,TypeScript 编译器可以帮助咱们检测错误的逻辑和无效的代码。 枚举字面类型 最后,咱们还可以使用枚举作为字面类型。

    1.5K20编辑于 2022-06-15
  • 来自专栏嵌入式学习

    (C99)复合字面

    #include <stdio.h> struct argvs { char a[64]; int b; }; int pfunc(struct argvs *a) { printf("argvs.a=%s argvs.b=%d\n", a->a, a->b); } int func(struct argvs a) { printf("argvs.a=%s argvs.b=%d\n", a.a, a.b); } int main(int argc, char *arg

    64840发布于 2020-09-08
  • 来自专栏青益云记

    「  3.JavaScript字面与变量  」

    DOCTYPE html> <head> <meta charset="utf-8"> <title>字面和变量</title> <script type="text/javascript "> /* 字面,都是一些不可改变的值 比如:1 2 3 4 5 字面都是可以直接使用的,但是我们不会直接使用字面 变量,变量可以用来保存字面,而且变量的值是可以随便改变的 变量更方便我们使用,所以再开发中都是通过变量去保存一个字面 , 而很少直接使用字面 */ // alert("12332123123123"); //声明变量

    42520编辑于 2023-01-03
  • 来自专栏日常技术分享

    Swift 多行字符串字面

    字符串字面 你可以在代码里使用一段预定义的字符串值作为字符串字面。字符串字面是由一对双引号包裹着的具有固定顺序的字符集。 字符串字面可以用于为常量和变量提供初始值: let someString = "Some string literal value" 注意someString常量通过字符串字面进行初始化,Swift 多行字符串字面 如果你需要一个字符串是跨越多行的,那就使用多行字符串字面 —— 由一对三个双引号包裹着的具有固定顺序的文本字符集: let quotation = """ The White Rabbit ,则多行字符串字面中也会包含换行符。 在上面的例子中,尽管整个多行字符串字面都是缩进的(源代码缩进),第一行和最后一行没有以空白字符串开始(实际的变量值)。

    4K10发布于 2020-07-21
  • 来自专栏java学习java

    python基础之字面和注释

    ​ 掌握字面的含义什么是字面字面:在代码中,被写下来的的固定的值,称之为字面常用的值类型Python中常用的有6种值(数据)的类型类型描述说明数字(Number)支持整数(int)浮点数(float

    44720编辑于 2023-10-22
  • 来自专栏web秀

    TypeScript 演化史 — 第八章】字面类型扩展 和 无类型导入

    image.png 上一篇更好的类型推断的文章中,解释了 TypeScript 如何用 const 变量和 readonly 属性的字面始化来推断字面类型。 扩展字面类型 当使用 const 关键字声明局部变量并使用字面量值初始化它时,TypeScript 将推断该变量的字面类型: const stringLiteral = "https"; // Type 如果 TypeScript 为 let 变量推断一个字面类型,那么尝试为指定的值以外的任何值赋值都会在编译时产生错误。 : 字符串字面类型被扩展为 string 类型 数字字面类型被扩展为 number 类型 布尔字面类型被扩展为 boolean 类型 枚举字面类型被扩展为包含枚举的类型 到目前为止,咱们一直在研究字面类型的扩展 为了理解非扩展字面类型的是有用的,咱们再来看看扩展字面类型。

    5.7K10发布于 2020-05-09
  • 来自专栏web秀

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

    更好的字面类型推断 字符串、数字和布尔字面类型(如:"abc",1和true)之前仅在存在显式类型注释时才被推断。从 TypeScript 2.1 开始,字面类型总是推断为默认值。 在 TypeScript 2.0 中,类型系统扩展了几个新的字面类型: boolean 字面类型 数字字面 枚举字面 不带类型注解的 const 变量或 readonly 属性的类型推断为字面初始化的类型 字符串字面扩展类型是 string,数字字面扩展类型是number,true 或 false 的字面类型是 boolean,还有枚举字面扩展类型是枚举。 因此,推断只读类属性的字面类型是合理的,因为它的值不会改变。 当然,TypeScript 不知道在运行时发生了什么:用 readonly 标记的属性可以在任何时候被一些JS 代码改变。 推断字面类型的有用性 你可能会问自己,为什么推断 const 变量和 readonly 属性为字面类型是有用的。

    4.6K40发布于 2020-05-09
领券