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

TypeScript类型别名

var str1:string|number="10"; 通过如上代码我们既可以是字符串也可以是数值 那么通过类型别名进行定义,那么下面我们可以是我们定义的类型 type strType=string|...number|boolean; var str2:strType="10"; str2=10; str2=true; 当然我们可以对我们的接口也采用类型别名方式 interface muchType1{...name:string } interface muchType2{ age:number } 通过如下代码我们就可以采用类型别名的方式进行创建了 type muchType=muchType1...muchType2 var obj:muchType={name:"张三"} var obj2:muchType={age:10} var obj4:muchType={name:"张三",age:10} 限制字符串的选择...男"|"女"; function getSex(str:sex):string { return str; } getSex("1") getSex("男") 通过如下图我们可以看到已经对我们的字符串进行限制了

1.1K20

TypeScript类型别名

var str1:string|number="10"; 通过如上代码我们既可以是字符串也可以是数值 那么通过类型别名进行定义,那么下面我们可以是我们定义的类型 type strType=string|...number|boolean; var str2:strType="10"; str2=10; str2=true; 当然我们可以对我们的接口也采用类型别名方式 interface muchType1{...name:string } interface muchType2{ age:number } 通过如下代码我们就可以采用类型别名的方式进行创建了 type muchType=muchType1...muchType2 var obj:muchType={name:"张三"} var obj2:muchType={age:10} var obj4:muchType={name:"张三",age:10} 限制字符串的选择...男"|"女"; function getSex(str:sex):string { return str; } getSex("1") getSex("男") 通过如下图我们可以看到已经对我们的字符串进行限制了

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

    TypeScript 强大的类型别名

    类型别名有时和接口很像,但是可以作用于原始值,联合类型,元组以及其它任何你需要手写的类型。...一些关键字 使用类型别名可以实现很多复杂的类型,很多复杂的类型别名都需要借助关键字,我们先来了解一下几个常用的关键字: extends extends 可以用来继承一个类,也可以用来继承一个 interface...typeof 在 JS 中 typeof 可以判断一个变量的基础数据类型,在 TS 中,它还有一个作用,就是获取一个变量的声明类型,如果不存在,则获取该类型的推论类型。...内置类型别名 下面我们看一下 TS 内置的一些类型别名: Partial Partial 的作用就是可以将某个类型里的属性全部变为可选项 ?。...参考 TypeScript 中文网 TS 中的内置类型简述 TypeScript 一些你可能不知道的工具泛型的使用及其实现

    3.4K20

    TypeScript-类型别名和类型别名、接口异同

    类型别名概述类型别名就是给一个类型起个 新名字, 但是它们都代表 同一个类型例如: 你的本名叫张三, 你的外号叫小三, 小三就是张三的别名, 张三和小三都表示同一个人type MyString = string...MyString 还是 string 都表示 string 也就是说将来你使用 MyString 别名作为变量的类型那么改变量就只能存储字符串类型的数据像如上的示例代码我赋值了其它类型的数据其实在编译器当中已经报错了如下...= {x: '123', y: 456};value = {x: false, y: 456};如上代码的含义为,定义了一个对象泛型别名,该对象当中有两个属性 x、y, 然后定义了一个该别名的变量,泛型类型指定的为...number 那么就不能在存储其它类型的值,如上代码有部分是报错的,如下:图片可以在类型别名类型的属性中使用自己一般用于定义一些 树状结构 或者 嵌套结构 的数据结构type MyType = {..., boolean, number];type 不会自动合并interface 的自动合并可查看 TypeScript 当中的 30.TypeScript-接口合并现象 这里就只演示 type 的不会自动合并的不同点

    23040

    TypeScript中使用类型别名

    在很多打包工具或者使用cli创建的项目中都会提供类型别名,例如Vue-cli中使用@可以代表绝对路径src。...但是在使用TypeScript开发Node.js项目中却没有这个选择,当然我们可以在tsconfig.json中设置path参数,但是这个只是路径不报错和有利于路径提示,在ts-node运行时还是会报错...,社区中提供了一个叫typescript-paths的插件来解决问题,但是这个插件对增量编译非常不友好(ts在项目大了之后全量编译随便改一点就要等2分钟),对此我们可以使用插件module-alias来解决...1.首先我们依然是在tsconfig.json中设置ts的路径别名,这是是可以让ts不报错并且有良好的路径提示。...("@", __dirname); Copy TypeScript image.png 整个配置可以配置多个别名,同时可以编写回调函数。

    88020

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

    ,而接口会定义一个新类型 允许给任意类型起别名,但无法给任意类型定义与之等价的接口(比如基础类型) 无法继承或实现类型别名(也不能扩展或实现其它类型),但接口可以 类型别名能将多个类型组合成一个具名类型...if (x === '1' && x === '2') { //... } } 这种类型完整性补充让TypeScript能够更细致地“理解”(静态分析)代码含义,进而发现一些不那么直接的潜在问题...== E.Bar) { //... } } 这与字面量类型中的例子非常相似: function f(x: 'Foo' | 'Bar') { // 错误 This condition will...: 一些具有公共单例类型属性的类型——公共单例属性即可区分的特征(或者叫标签) 一个指向这些类型构成的联合的类型别名——即联合 针对公共属性的类型保护 通过区分公共单例属性的类型来缩窄父类型,例如: /...能够满足完整性覆盖要求,但需要额外定义一个assertNever函数 P.S.关于Never类型的更多信息,见基本类型_TypeScript笔记2 此外,还有一种不那么准确,但也有助于检查完整性的方法:

    1.2K30

    TypeScript中的类型断言

    本文是关于 TypeScript 中的 type assertions 的,它与其他语言中的类型强制转换有相似之处,并通过 as 运算符执行。...---- 类型断言 类型断言使我们可以覆盖 TypeScript 为存储位置计算的静态类型,这对于解决类型系统的限制很有用。...在 B 行中,我们看到此类型不允许访问任何属性。 在 C 行中,我们用类型断言(运算符 as)告诉 TypeScript data 是一个Array。现在就可以访问属性 .length 了。...类型断言是不得已的方法,应尽可能的避免。他们(暂时)删除了静态类型系统为我们提供的安全网。 注意,在 A 行中,我们还覆盖了 TypeScript 的静态类型,不过是通过类型注释完成的。...类型断言的替代语法 TypeScript 对于类型断言有另一种“尖括号”语法: 1>data 该语法已经过时,并且与 React JSX 代码(在 .tsx 文件中)不兼容。

    3.8K40

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

    三、进阶 1、类型别名 用来给一个类型起一个新名字!...我们使用 type 创建类型别名。...类型别名常用于联合类型。 2、字符串字面量类型 字符串字面量类型用来约束取值只能是某几个字符串中的一个。...上例中,我们使用 type 定了一个字符串字面量类型 EventNames,它只能取三种字符串中的一种。 注意,类型别名与字符串字面量类型都是使用 type 进行定义。...当一个表达式满足下面条件之一时,它就是一个常数枚举表达式: 数字字面量 引用之前定义的常数枚举成员(可以是在不同的枚举类型中定义的)如果这个成员是在同一个枚举类型中定义的,可以使用非限定名来引用

    6100

    类型即正义:TypeScript 从入门到实践(三):类型别名和类

    中独有的类型别名,它类似 JS 变量,是类型变量,接着我们还会学习 TS 中内容非常庞杂的内容之一:类,了解 TS 中类的独有特性,以及如何注解类,甚至用类去注解其他内容。...npm start 类型别名 就像我们为了在平时开发中更加灵活而创建变量或者干掉硬编码数据一样,TS 为我们提供了类型别名,它允许你为类型创建一个名字,这个名字就是类型的别名,进而你可以在多处使用这个别名...其它一样 } 可以看到我们用了一个 NameParams 类型别名,它保存着原联合类型,类型别名就是等号左边是 type 关键字加上别名变量,等号右边是带保存的类型,这个类型很广,它可以是字面量类型,...基础类型,元组、函数、联合类型和交叉类型、甚至还可以是其他类型别名的组合。...小结 这一节我们学习了类型别名,它可以在一定程度上模拟接口(Interface),同时在类型上又可以达到比接口更加细粒度的效果,同时它又像 JS 中的变量,可以一处修改,多处生效,避免硬编码类型带来的一些代码上的重构和改动难题

    2.8K30

    实现TypeScript中的互斥类型

    此时,你会怎么用TypeScript来定义这个类型?本文将带大家实现一个互斥类型来解决这个问题,欢迎各位感兴趣的开发者阅读本文。 前置知识 在实现之前,我们需要先来了解几个基础的知识。...: string }; never类型 在TypeScript中它有一个特殊的类型never,它是所有类型的子类型,无法再进行细分,也就意味着除了其本身没有类型可以再分配给它。...接下来,我们来梳理下实现思路: 实现一个排除类型,用于从A对象类型中剔除B对象类型中的属性,并将排除后的属性类型设为never,得到一个新对象类型。...实现代码 接下来,我们来看下代码的实现,如下所示: // 定义排除类型:将U从T中剔除, keyof 会取出T与U的所有键, 限定P的取值范围为T中的所有键, 并将其类型设为never type Without...> & T); 注意:为了类型的可复用性,我们使用了泛型,对此不熟悉的开发者请移步:TypeScript中文网——泛型 测试用例 我们将文章开头所说的问题代入上述实现代码中,看一下它能否将其解决,如下所示

    3.1K40

    TypeScript 中的数组类型定义

    在 TypeScript 中声明和初始化数组也很简单,和声明数字类型和字符串类型的变量也差不多,只不过在指定数组类型时要在类型后面加上一个中括号 [] 语法格式 const array_name: dataype...array: Array = ['孟浩然', 99]; 除了使用中括号 [] 的方法来声明数组,你还可以使用 数组泛型 来定义数组 语法格式 const array_name..., val2, val3],[v1, v2, v3]]; // 等同于 const array_name: datatype[][] = [[val1, val2, val3]]; 多维数组类型 TypeScript...等同于 const test: string[][] = [['狮子头', '清蒸鲈鱼', '鲜椒牛蛙'], ['北京烤鸭'], ['地锅鸡', '饿了']]; 声明一个二维数组 注意: 以下示例中类型在数组中的...个 建议: 在定义数组类型的时候使用数组泛型定义,这样显得更直观一点 Tuple 元组类型(元组类型允许表示一个已知元素数量和类型的数组)

    5.4K40

    (译)Dart 2.13 类型别名、改进FFI、优化性能、Docker镜像支持

    今天,我们宣布Dart 2.13具有类型别名,这是目前我们要求排名第二的语言功能。...我们还更改了dart create和flutter create模板,以便现在默认情况下在新应用和程序包中启用null安全。 类型别名 类型别名是2.13语言的一项新功能。...它扩展了我们先前的支持,该支持允许创建函数类型的类型别名,但不能创建任何其他类型。这个备受追捧的功能是语言问题跟踪器中评分排名第二的功能。...重命名公共库中的类时,甚至可以使用类型别名。想象一下PoorlyNamedClass,您想将公共库中现有的类重命名为BetterNamedClass。...即使在2.13之前的程序包无法定义自己的类型别名,在2.13下具有较低SDK约束的程序包也可以安全地引用2.13程序包中定义的类型别名。

    2K20

    Dart中的内置数据类型简介

    Dart中的内置数据类型简介 最近也有在常使用flutter写一个简单的app,不为实现啥功能,就单纯走一个流程,把它部署到我的安卓和ios手机上。为此稍微看一下dart的内置数据类型。...前言 变量是一个引用,在Dart中一旦变量的类型被确定,就不能再被更改类型 Dart中的一切变量皆是对象,所有的变量都指向一个对象。...声明变量 声明可以有以下两种方式,一种是不指定类型,使用var关键字。...'; ​ // 三、布尔类型 // true 和false 没啥好说的 ​ // 四、Lists类型 var list = [1, 2, 3]; ​ // 五、Set类型 看起来不太习惯,写多了就习惯了...跟js中的object一样,但是不同语言千万不要以为就是单纯的类似,这样自己在学习过程中容易产生紊乱。

    51830
    领券