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

通用typescript类型定义包括。原语类型

通用typescript类型定义包括原语类型、联合类型、交叉类型、函数类型、对象类型、数组类型、元组类型、枚举类型、类类型、接口类型、类型别名和泛型类型。

  1. 原语类型(Primitive Types):包括布尔类型(boolean)、数字类型(number)、字符串类型(string)、空类型(null)和未定义类型(undefined)。
  2. 联合类型(Union Types):表示一个值可以是多个类型之一,使用竖线(|)分隔。例如,number | string 表示一个值可以是数字类型或字符串类型。
  3. 交叉类型(Intersection Types):表示一个值同时具有多个类型的特性,使用与号(&)分隔。例如,TypeA & TypeB 表示一个值同时具有 TypeA 和 TypeB 的特性。
  4. 函数类型(Function Types):表示函数的类型,包括参数类型和返回值类型。例如,(x: number, y: number) => number 表示一个接受两个数字类型参数并返回数字类型的函数。
  5. 对象类型(Object Types):表示具有特定属性和属性类型的对象。例如,{ name: string, age: number } 表示一个具有 name 和 age 属性的对象,name 属性为字符串类型,age 属性为数字类型。
  6. 数组类型(Array Types):表示具有相同类型元素的数组。例如,number[] 表示一个由数字类型元素组成的数组。
  7. 元组类型(Tuple Types):表示具有固定长度和特定类型的数组。例如,[string, number] 表示一个包含字符串类型和数字类型的两个元素的数组。
  8. 枚举类型(Enum Types):表示一组具有命名值的相关常量。例如,enum Color { Red, Green, Blue } 表示一个颜色枚举类型,包含 Red、Green 和 Blue 三个命名值。
  9. 类类型(Class Types):表示具有构造函数和实例方法的类。例如,class Person { constructor(name: string) { this.name = name; } sayHello() { console.log("Hello, " + this.name); } } 表示一个具有构造函数和 sayHello 方法的 Person 类。
  10. 接口类型(Interface Types):表示对象的结构和属性类型。例如,interface Person { name: string; age: number; } 表示一个具有 name 和 age 属性的 Person 接口。
  11. 类型别名(Type Aliases):为一个类型定义一个别名,方便重复使用。例如,type Point = { x: number; y: number; } 定义了一个名为 Point 的类型别名,表示具有 x 和 y 属性的对象。
  12. 泛型类型(Generic Types):表示在定义时不指定具体类型,而是在使用时动态指定类型。例如,function identity<T>(arg: T): T { return arg; } 表示一个泛型函数,可以接受任意类型的参数并返回相同类型的值。

以上是通用typescript类型定义的概念和分类。在实际应用中,原语类型、联合类型、交叉类型、函数类型、对象类型、数组类型、元组类型、枚举类型、类类型、接口类型、类型别名和泛型类型都有各自的优势和适用场景。

腾讯云相关产品和产品介绍链接地址请参考腾讯云官方网站:https://cloud.tencent.com/

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

相关·内容

《现代Typescript高级教程》扩展类型定义

现代JavaScript高级小册 深入浅出Dart 现代TypeScript高级小册 扩展类型定义TypeScript 中,我们可以通过声明文件(.d.ts 文件)来为现有的 JavaScript...库提供类型定义,或者为现有的类型添加额外的属性和方法。...这些文件通常用来为已有的 JavaScript 库提供类型定义,使得我们可以在 TypeScript 代码中更安全、更方便地使用这些库。...声明文件的主要内容是类型声明,包括变量、函数、类、接口等的类型定义。...其次,尽管 TypeScript 允许我们为内置类型添加自定义的属性和方法,但这并不意味着这是一个好的做法。在很多情况下,过度修改内置类型可能会导致代码难以理解和维护。

54110
  • TypeScript交叉类型&联合类型

    一、交叉类型(Intersection types)什么事交叉类型呢?简单来说就是通过&符号将多个类型进行合并成一个类型,然后用type来声明新生成的类型。...这里分两种情况,如果同名属性的类型相同则合并后还是原本类型,如果类型不同,则合并后类型为never2.基本数据类型交叉any和number交叉结果是any类型,any和boolean交叉结果是any类型...,如下图所示:3.2 键的类型是对象类型A、B、C三个类型都有相同的键inner,但是键的数据类型不同,分别是D、E、F,此时A&B&C会将inner键的类型进行合并,其实是D、E、F的交叉类型。...,当键的类型是不同的字面量类型,则交叉后类型为never类型。...二、联合类型(Union types)联合类型和交叉类型比较相似,联合类型通过|符号连接多个类型从而生成新的类型。它主要是取多个类型的交集,即多个类型共有的类型才是联合类型最终的类型

    64210

    TypeScript类型守卫

    类型守卫主要包括四种方式:intypeofinstanceof自定义类型1、in- 定义属性场景下内容的确认先写两个接口Teacher、Student,然后将这两个接口进行联合声明,使用in来判断属性是否在传递的参数中...Teacher类型 if(val instanceof Teacher){ console.log('teacher:'+ val.courses) } //判断val的类型是否是定义的接口...Student类型 if(val instanceof Student){ console.log('student' + val.study) }}4、自定义类型TS中有一个关键字...使用:先定义一个变量,该变量表示是否是某种类型,比如以下定义了isTeacher,代表了参数cls是Teacher类型,然后用这个变量来判断。...(1)函数参数形式函数中的参数类型为多个类型,通过is关键字自定义类型,将函数参数精确到某种类型,然后再执行相应的逻辑。

    45530

    TypeScript中对象类型定义的几种方式

    前言 在 TypeScript 中,以下几种方式用于定义对象: 接口(Interface) 常用场景: 接口用于定义对象的结构,尤其是当对象结构比较复杂、需要复用或者要用于类的类型定义时。...接口非常适合用于定义 API 的数据结构或者复杂的对象类型。...: MenuItem[] } 类型别名(Type Alias) 常用场景: 类型别名可以定义对象类型,也可以定义联合类型、交叉类型等。它非常灵活,适用于定义各种复杂类型包括对象类型。...对于复杂对象结构或需要复用的类型定义,不建议使用这种方式。...总体来说,接口和类型别名是最常见的选择,特别是在 TypeScript类型系统中,它们提供了最好的类型安全和灵活性。

    34110

    TypeScript 元组类型

    在 JavaScript 中是没有元组的,元组是 TypeScript 中特有的类型,其工作方式类似于数组。 元组可用于定义具有有限数量的未命名属性的类型。每个属性都有一个关联的类型。...很明显元组类型 [number, string] 的长度是 2,在位置索引 2 处不存在任何元素。 三、元组类型的可选元素 与函数签名类型,在定义元组类型时,我们也可以通过 ?...针对这种情形,在 TypeScript 中就可以利用元组类型可选元素的特性来定义一个元组类型的坐标点,具体实现如下: type Point = [number, number?, number?]...Point3D 元组类型,用于表示一个三维的坐标点,然后我们利用剩余参数的语法,定义了一个 drawPoint 函数,用于输出三维坐标点的坐标值,接着定义一个名为 xyzCoordinate 元组类型变量并初始化...六、只读的元组类型 TypeScript 3.4 还引入了对只读元组的新支持。我们可以为任何元组类型加上 readonly 关键字前缀,以使其成为只读元组。

    1.5K20

    TypeScript never 类型

    了解完底部类型的概念后,下面我们开始来介绍 TypeScript 中对应的底部类型 —— never 类型。...二、never 类型TypeScript 中,never 类型表示的是那些永不存在的值的类型。...在定义变量时,可以设置变量的类型为 never 类型: let foo: never; // 定义never类型的变量 never 类型是任何类型的子类型,也可以赋值给任何类型: let bar: string...let baz: never = 123; // 赋值失败,number类型不能赋值给never类型的变量 // 定义never类型变量,接收返回值类型为never类型的函数返回值 let bar:...never 类型为底部类型,也称为零类型或空类型。它通常表示为⊥,表示计算未将结果返回给调用方。void 类型,在另一方面,是一个单元类型类型,它允许只有一个值),没有定义的操作。

    4.2K10

    TypeScript 类型系统

    总之,我们使用 Typescript 的主要目的仍然是要它的静态类型检查,帮助我们提供代码的扩展性和可维护性。因此 Typescript 需要维护一套完整的类型系统。 「类型系统包括 1....❞ 提供常用类型(不必须,但是没有用户体验会极差)并可以扩展出自定义类型(必须)。...比如定义 String 类型, 以及其原型上的方法和属性。 ?...大家只要记住「Typescript 如果可以 100% 确定你的类型,并且这个类型要比你定义的或者 Typescript 自动推导的范围更小,那么就会发生类型收缩」就行了。...TypeScript 既会对变量存在与否进行检查,也会对变量类型进行兼容检查。因此 TypeScript 就需要定义一系列的类型,以及类型之间的兼容关系。

    1.4K10

    TypeScript类型断言

    什么是类型断言 类型断言是可以手动指定一个值得类型 类型断言 let num3:number|string="10" num3=20 console.log(num3.length) 通过如上代码,当我们获取...length的时候会报错因为我们赋值为20所以不存在属性length,那么我们就可以采用类型断言去做处理 值 function getAssert(name:string|number) {...return (name).length; } 值as类型 function getAssert(name:string|number) { return (name as string...).length; } 因为只有在我们为string类型的时候才有length属性,所以这一块我们要采用类型断言的方式进行处理....通过如下代码我们可以发现会出现异常正如下方图片所示,因为他并非是强制类型转换,他只能断言联合类型中存在的类型.不存在的类型是不允许的. function getAssert(name:string|number

    74610

    TypeScript 联合类型

    联合类型(Union Types)可以通过管道(|)将变量设置多种类型,赋值时可以根据设置的类型来赋值。注意:只能赋值指定的类型,如果赋值其它类型就会报错。...创建联合类型的语法格式如下:Type1|Type2|Type3 实例声明一个联合类型:TypeScriptvar val:string|number val = 12 console.log("数字为...console.log("数字为 " + val); val = "Runoob"; console.log("字符串为 " + val);输出结果为:数字为 12字符串为 Runoob如果赋值其它类型就会报错...:var val:string|number val = true 也可以将联合类型作为函数参数使用:TypeScriptfunction disp(name:string|string[]) { if...); disp(["Runoob", "Google", "Taobao", "Facebook"]);输出结果为:Runoob输出数组....RunoobGoogleTaobaoFacebook联合类型数组我们也可以将数组声明为联合类型

    8310

    TypeScript函数类型

    声明式类型函数 通过如下代码我们实现了一个返回值为number类型的方法,同时我们也对返回值和参数进行了约束 function funcType(name:string,age:number):number..."张三",18) 对方法进行添加默认值 function funcType2(name:string="张三",age:number=18):number{ return age; } 表达式类型函数...number):number } var funcType6:funcType5=function(name:string,age:number):number{ return age; } 联合类型重载...通过如下代码我们可以实现一个联合类型函数,当然这可以采用重载的方式 当我们的参数是number类型时我们的返回值是number类型,当我们的参数是string类型时我们的返回值是string类型,这一块具体在我们实际业务中可以根据实际需求进行相应修改

    78820

    TypeScript函数类型

    # 声明式类型函数 通过如下代码我们实现了一个返回值为number类型的方法,同时我们也对返回值和参数进行了约束 ``` function funcType(name:string,age:number...对方法进行添加默认值 ``` function funcType2(name:string="张三",age:number=18):number{ return age; } ``` # 表达式类型函数...numbe } var funcType6:funcType5=function(name:string,age:number):number{ return age; } ``` # 联合类型重载...通过如下代码我们可以实现一个联合类型函数,当然这可以采用重载的方式 当我们的参数是number类型时我们的返回值是number类型,当我们的参数是string类型时我们的返回值是string类型,这一块具体在我们实际业务中可以根据实际需求进行相应修改

    75020

    TypeScript类型声明

    前言本文主要讲解TypeScript的基本数据结构,主要包括JS基本数据类型以及TS特有的数据类型。...,而TS中的数组是纯数字类型(number)的集合,如果在TS中定义包含多个类型的数组,那就是元组。...数组中数据的类型可以不随定义类型位置的限定。...语法:enum + 变量名,意思是定义了一个叫做“变量名”的枚举类型优点:定义一些常量,可以清晰地表达意图或创建一组有区别的用例。...,即必须具有初始化表达式(3)异构含义:枚举类型包括字符串类型和数字类型注意:含有字符串值成员的枚举中不允许使用计算值,具体意思就是当枚举对象中存在有value是字符串的枚举成员的时候,不能将其他枚举成员的

    35930
    领券