typescript基础数据类型
布尔值(Boolean)
最简单的数据类型,只有两个值 true 和 false
let isTs : boolean = false;
数字(Number)
与js一样,在ts中所有的数字也都是浮点数
let num : number = 666;
字符串(String)
与js一样可以使用单引号或者双引号来表示一个字符串
let str : string = "hello world";
也可以使用模板字符串,它使用反引号包裹并且可以通过 ${exp} 来嵌入表达式,并且可以定义多行文本
数组(Array)
在ts中定义一个数组有两种方法
- 在元素类型后接
[],表示此类型数据组成一个数组 - 使用数组泛型
Array<元素类型>
let numList1 : number[] = [1,2,3,4];
let numList2 : Array<number> = [1,2,3,4];
元祖(Tuple)
元祖类型用于表示那些已知元素数量与类型的数组,元素数据类型可以互不相同
let x : [ number, boolean ]
x = [ 1, false ]; // ok
x = [ false, 1 ]; // error
如果访问越界元素,会使用联合类型替代
x[6] = 3; // ok 3-->number
x[5] = true; // ok true-->boolean
x[4] = "越界元素"; //error 不是数字也不是布尔,无法赋值
枚举(Enum)
Enum是对js数据类型的补充,可以为一组数值赋予更加语义化的名字。其中枚举又可以细分为数字枚举与字符串枚举
- 数字枚举
enum Color {
Red,
Blue,
// 可以自定义元素编号,通过编号能拿到指定的值
Green = 4,
Yellow,
}
let c : Color = Color.Red; // 0
let cName : string = Color[0]; // Red (string)
默认编号从0开始依次递增。但可以通过自定义来改变编号例如:Green自定义编号为4,后续的Yellow则为5。
- 字符串枚举
enum Direction{
Up: "up";
Down: "down";
Left: "left";
Right: "right";
}
let dir : string = Direction.Up; // "up"
任意值(Any)
当我们不确定一个数据的类型时,不希望类型检查器去检查这个数据的类型时,我们可以使用any,任何类型的数据都能够成功赋值给一个any类型的变量
let notSure : any = undefined;
notSure = "may be a String";
notSure = false;
// 这些都是不会报错的
Unknown 类型
unknown类型与any类型类似,所有类型的值都能赋给一个unknown类型的变量unknown类型数据只能赋值给any与自己本身,赋值给其他类型变量时会报错。unknown类型数据禁止任何的更改
let value : unknown;
value.length; //error
value.foo; //error
value.strim(); //error
value(); //error
空值(Void)
void类型表示没有任何类型,最常见的当一个函数没有返回值时,其返回值的类型通常是void
function print (name : string) : void {
console.log("no return!");
}
一般情况我们很少声明一个void类型的变量,因为void类型变量只能被赋予 undefined 和 null
Undefined 和 Null
undefined 与 null 在ts中也拥有各自的类型
let un : undefined = undefined;
let nu : null = null;
默认情况下可以将 undefined 与 null 赋值给任意类型的变量。但如果指定了 ---stricNullChecks 标记,那么 undefined 与 null 只能赋值给 void 以及它们本身的类型
Never
never 表示的是不可能存在的值的类型。比如 never 类型一般是哪些会报错或抛出异常的函数的返回值类型
function error (message : string) : never {
throw new Error(message);
}