TypeScript基础总结-基础类型

一.基础类型
1.布尔值(boolean):同js,true/false
2.数字(number):同js,浮点数。可以表示二进制、六进制、十进制和十六进制
3.字符串(string):同js,支持ES6的模版字符串。
4.数组(Array):数组的定义有两种方法
第一种在元素类型后边接上[]

let arr: Number[] = [1, 2, 3];

第二种使用数组范型:

let arr: Array = [1, 2, 3];

5.元组(Tuple):允许表示一个已知元素数量和类型的数组,元素的类型不必相同。

let list: [string, number];
list = ['hello' , 1];
list = [1, 'hello'];  // 会报错

当访问越界的元素时,会使用元素的联合类型(官方文档)。实际试的时候会报错:


TypeScript基础总结-基础类型_第1张图片
访问越界元素.png

TypeScript基础总结-基础类型_第2张图片
error.png

6.枚举类型(enum):是对js标准类型的一个补充。默认从0开始编号,也可以手动指定成员的数值。

enum Animal {dog, cat, pig};

let a: Animal = Animal.dog;
console.log(a);

enum Color {red = 1, yellow, green};
let c: Color = Color.yellow;
console.log(c);

enum Person {per1 = 2, per2 = 1, per3 = 3}
let p: Person = Person.per2;
console.log(p);

编译以后的文件是这样的:

var Animal;
(function (Animal) {
    Animal[Animal["dog"] = 0] = "dog";  // 双向赋值
    Animal[Animal["cat"] = 1] = "cat";
    Animal[Animal["pig"] = 2] = "pig";
})(Animal || (Animal = {}));
;
var a = Animal.dog;
console.log(a);
var Color;
(function (Color) {
    Color[Color["red"] = 1] = "red";
    Color[Color["yellow"] = 2] = "yellow";
    Color[Color["green"] = 3] = "green";
})(Color || (Color = {}));
;
var c = Color.yellow;
console.log(c);
var Person;
(function (Person) {
    Person[Person["per1"] = 2] = "per1";
    Person[Person["per2"] = 1] = "per2";
    Person[Person["per3"] = 3] = "per3";
})(Person || (Person = {}));
var p = Person.per2;
console.log(p);

编译以后的文件中看到枚举类型有一个双向赋值,所以我们也可以这样引用:⬇️

let d: string = Animal[1];
console.log(d);

7.any类型:任意类型。当我们在为变成阶段还不确定类型的变量指定类型时,可以用any标记,让他们通过编译阶段;可调用any变量上的任何方法。
当我们只知道部分数据时,也可用any

let arr: any[] = ['a' , 1, true];
arr[1] = 'b';

8.void类型:某种程度上void类型与any类型相反,表示没有任何类型。常见情况,当函数没有返回值时,返回值类型为void

function fun(): void {
    console.log('this is a warning');
}

声明一个void类型的变量没什么用,因为你只能赋值undefinednull
9.undefinednull类型:与void类型一样,本身没多大的作用。是所有类型的子集,就是说可以把undefinednull赋值给任何类型。但当你指定了--strictNullChecks标记时,undefinednull只能赋值给void和他们各自。
10.never类型:表示永不存在的值的类型。never是任何类型的子类型,也可以赋值给任何子类型,没有类型可以赋值给never类型(除它自己)。
11.object类型:非原始类型。
12.类型断言:推测一个实体的类型。

let someText: any = '123';
let len = (someText).length; // 尖括号形式
let len = (someText as string).length; // as语法

你可能感兴趣的:(TypeScript基础总结-基础类型)