数据类型关键字 | 名称 | 使用说明 |
---|---|---|
number | 数值 |
1.任何整数,浮点数,无论正负数都可以被赋给此类型的变量 2.数字字面量包括整数字面量和十进制浮点数字面量 3.0,17是10进制,0x开头的-0xF1A7是负16进制,0o开头的0o777代表8进制,0b开头的0b11是二进制数,也包括9.33262154439441e+157 这种 |
boolean | 布尔 | true/false |
string | 字符串 |
let str1 = 'Hello, world!\n'; let str2 = ' a string'; let str3 = "excute code is ${StatusCode}"; |
object | 对象 | Object类型是所有引用类型的基类型。例如普通对象, 数组,元组,集合等等任何值,都可以直接被赋给Object类型的变量, 它们会被自动装箱 |
Array | 数组 |
数组的长度由数组中元素的个数来确定。数组中第一个元素的索引为0 示例:let names: string[] = ['Alice', 'Bob', 'Carol']; |
Enum | 枚举 |
预先定义的一组命名值的值类型,其中命名值又称为枚举常量。 ArkTs中只提供了基于数字和基于字符串的枚举,例如: export enum EnumTest1 {East,West} 默认是数字 export enum EnumTest2 {"East","West"} 字符串 |
Union | 联合类型 |
由多个类型组合成的引用类型。联合类型包含了变量可能的所有类型 class Cat {name: string = 'cat';// ...} class Dog {name: string = 'dog';// ...} type Animal = Cat | Dog | Frog | number; //这里定义了一个联合类型,cat,dog等可以是class或interface |
Aliases | 匿名类型 |
(数组、函数、对象字面量或联合类型)提供名称,或为已有类型提供替代名称 type Handler = (s: string, no: number) => string; type NullableObject = Object | null; |
void | void |
当一个函数没有返回值时,通常其返回值会声明为 void 类型 test(): void{} 此类型只有一个值,同样是void。由于void是引用类型,因此它可以用于泛型类型参数 |
undefined | 一个未定义或不存在的值 | 当你定义了一个变量而未赋值时,该变量就是undefined类型,例如:let test |
null | 空 | null是一个表示"空值"的对象,通常用来表示变量的值为“没有值” null 和 undefined 在进行比较时,它们的值相等,但数据类型不同,因此出现: console.log(null === undefined); // false console.log(null == undefined); // true |
Symbol | 独一无二的值 | ES6 新增的一种基本数据类型,它用来表示独一无二的值,
通过 Symbol 函数生成,例如: let str1 = Symbol("AbnerMing") let str2 = Symbol("AbnerMing") 实际上通过 console.log("是否相等:" + (s1 === s2))知道str1和str2是不相等的。 |
bigint | 任意大的整数 |
一般用Number表示的最大整数为 2^53 - 1,可以写为 Number.MAX_SAFE_INTEGER ,但如果超过这个最大值,可以用 BigInt来表示,Bigint可以表示任意大的整数, 使用BigInt,整数溢出的问题将不复存在 例如:let bigint = BigInt('9999999999999') |
any | 任意 |
一个变量类型为any时,那么它是可以赋值任何类型的数据的。 当不希望类型检查器对这些值进行检查而是直接通过编译阶段的检查时可以用这个类型。 |
unknown | 未知类型 |
所有数据类型都可以定义为 any。但是也可以都定义为 unknown unknow和any的区别:unknown类型只能赋值给any和unknown类型,而any类型可以赋值给任意类型, 这就导致any类型太灵活,不安全 示例: let test1:unknow; |
never | 永远不存在的类型 |
never类型一般是那些总是会抛出异常或根本就不会有返回值的函数表达式或箭头函数表达式的返回值类型 例如:function infiniteLoop(): never { while (true) {} } |