一、数据类型

  • TypeScript中为了使编写的代码更规范,更有利于维护,增加了类型校验,在typescript中主要给我们提供了以下数据类型
  • 布尔类型(boolean)
  • 数字类型(number)
  • 字符串类型(string)
  • 数组类型(array)
  • 元祖类型(tuple)
  • 枚举类型(enum)
  • 任意类型(any)
  • null和undefined
  • void类型
  • never类型

    二、类型详解

    1、布尔类型(boolean)
    1. var flag: boolean = true;
    2. flag = 123; // 错误
    3. flag = false; // 正确

2、数字类型(number)
  1. var num: number = 123;
  2. num = 456; // 正确
  3. num = 'str'; // 错误

3、字符串类型(string)
  1. var str:string = 'this is ts';
  2. str = 'haha'; // 正确
  3. str = true; // 错误

4、数组类型(array)ts中定义数组有两种方式
  1. var arr = ['1', '2']; // es5定义数组
  2. 1.第一种定义数组的方式
  3. var arr: number[] = [11, 22, 33];
  4. var arr: string[] = ['a', 'b', 'c'];
  5. 2.第二种定义数组的方式
  6. var arr: Array<number> = [11, 22, 33];
  7. var arr: Array<string> = ['a', 'b', 'c'];

5、元组类型(tuple)属于数组的一种
  1. 注:元组类型可以指定数组里面每个元素的类型
  2. var arr:[number,string]=[123,'this is ts'];

6、枚举类型(enum)
  • 随着计算机的不断普及,程序不仅只用于数值计算,还更广泛地用于处理非数值的数据。
    例如:性别、月份、星期几、颜色、单位名、学历、职业等,都不是数值数据。
    在其它程序设计语言中,一般用一个数值来代表某一状态,这种处理方法不直观,易读性差。
    如果能在程序中用自然语言中有相应含义的单词来代表某一状态,则程序就很容易阅读和理解。
    也就是说,事先考虑到某一变量可能取的值,尽量用自然语言中含义清楚的单词来表示它的每一个值,
    这种方法称为枚举方法,用这种方法定义的类型称枚举类型。 ```typescript // 枚举类型定义语法 enum 枚举名 { 标识符[= 整型常数], 标识符[= 整型常数], … };

列子1: enum Flag { success = 1, error = -1 } var f: Flag = Flag.success console.log(f); // 输出:1 如果标识符没有赋值 它的值就是下标

列子2: enum Color { blue, red = 3, orange }; var c: Color = Color.red; console.log(c); // 3 var c: Color = Color.orange; console.log(c); // 4 orange 默认没有值,所有它就以上一个red为基准顺延

  1. <a name="f32e920c"></a>
  2. ##### 7、任意类型(any)
  3. ```typescript
  4. var num: any = 123;
  5. num = 'str'; // 正确
  6. num = true; // 正确
  7. 任意类型的用处:其实不加any也可以实现,但是会有警告
  8. var oBox: any = document.getElementById('box');
  9. oBox.style.color = 'red';

8、null 和 undefined
  • 是其他(never)类型的子类型 ```typescript var num: number; console.log(num); // 输出:undefined,但是会有警告

var num: undefined; console.log(num); // 输出:undefined,没有警告

// 定义没有赋值就是 undefined var num: number | undefined num = 123; console.log(num); // 输出:123,没有警告

// 一个元素可能是 number类型 可能是 null 可能是 undefined var num: number | null | undefined; num = 1234; console.log(num);


<a name="6560a040"></a>
##### 9、void 类型

- typescript 中的 void 表示没有任何类型,一般用于定义方法的时候方法没有返回值。
```typescript
// es5的定义方法
function run() {
    console.log('run');
}
run();

// 正确写法:表示方法没有返回值
function run(): void {
    console.log('run');
}
run();

// 正确写法
function run(): number {
    return 123;
}
run();

10、never 类型
  • 是其他类型 (包括 null 和 undefined)的子类型,代表从不会出现的值。这意味着声明never的变量只能被never类型所赋值。 ```typescript var a: undefined; a = undefined; // 正确,只能赋值 undefined var b: null; b = null; // 正确,只能赋值 null

// 正确写法 a = (() => { throw new Error(‘错误’); })()

never 一般用不到,可以使用any来替代 ```