TypeScript 基础语法——类型系统

230 阅读2分钟

基础类型

基础类型包含:string,number,boolean

空和未知类型

因为在 Null 和 Undefined 这两种类型有且只有一个值,在标注一个变量为 Null 和 Undefined 类 型,那就表示该变量不能修改了。

默认情况下 null 和 undefined 是所有类型的子类型。 就是说你可以把 null 和 undefined 其它类 型的变量.

对象类型

内置对象类型

例如 Object,Array,Date

let a :Object ={}
let b:Array<number>=[1,2,3]
let date :Date =new Date()

自定义对象

字面量标注

let obj : {username:string,id:number} ={
    username:'xxx',
    id:1
}

接口

接口只能作为类型标注用,不能作为具体值

// 接口
interface Person{
    username:string,
    age:number
}
let user : Person ={
    username:'xxx',
    age:24,
}

数组类型

ts中数组里存储值的类型必须一致 类型标志两种方法

泛型标注

'<>'里表示数组中存储的数据类型

let arr: Array<number> = [1, 2, 3]

简单标注

let arr2: string[] = [];

元组类型

元组类型和数组相似,但是里面存储的数据类型可不一致

**注意: 初始化数据的个数以及对应位置标注类型必须一致 越界数据必须是元组标注中的类型之一(标注越界数据可以不用对应顺序 - 联合类型) **

let data :[string,number] = ['hello world',1]
data.push(1111)

枚举类型

枚举的作用组织收集一组关联数据的方式,通过枚举我们可以给一组有关联意义的数据赋予一些友好的名字

enum HTTP_CODE {
OK = 200,
NOT_FOUND = 404,
METHOD_NOT_ALLOWED
};
// 200
HTTP_CODE.OK;
// 405
HTTP_CODE.METHOD_NOT_ALLOWED;
// error
HTTP_CODE.OK = 1;

注意事项

  • key 不能是数字
  • value 可以是数字,称为数字类型枚举,也可以是字符串,称为字符串类型枚举,但不能是其它值,默认为数字:0
  • 枚举值可以省略,如果一个枚举值类型为数字,如果省略,则:第一个枚举值默认为:0;非第一个枚举值为上一个数字枚举值 + 1
  • 如果前一个枚举值类型为字符串,则后续枚举项必须手动赋值
  • 枚举值为只读(常量),初始化后不可修改

无值类型

表示没有任何数据的类型,通常用于标注无返回值函数的返回值类型,函数默认标注类型为: void

Never类型

当一个函数永远不可能执行 return 的时候,返回的就是 never ,与 void 不同, void 是执行了 return ,只是没有值, never 是不会执行 return ,比如抛出错误,导致函数终止执行

function fn(): never {
throw new Error('error')};

任意类型

any

  • 一个变量申明未赋值且未标注类型的情况下,默认为 any 类型
  • 任何类型值都可以赋值给 any 类型
  • any 类型也可以赋值给任意类型
  • any 类型有任意属性和方法

函数类型

函数名称( 参数1: 类型, 参数2: 类型... ): 返回值类型;

未知类型