TypeScript -- 基本类型

    类型一览

    类型注解
作用:相当于强类型语言中的类型声明
语法:(变量/函数):type


//原始类型
let bool: boolean = true;
let num: number = 123;
let str: string = 'abc';

//数组类型
let arr1: number[] = [1, 2, 3];
let arr2: Array = [1, 2, 3];
let arr3: Array = [1, 2, 3, '4'];

//元组类型(特殊数组:限制数组的类型和个数)
let tuple: [number, string] = [0, '1'];
// tuple.push(2)
// console.log(tuple) //[0,'1',2]
// tuple[2]//会报错
//=======结论:开发中使用元组的时候禁止越界访问=====

//函数
let add = (x:number, y:number):number => x + y
//通常函数的返回值类型是可以省略,利用ts的类型推断功能let add1 = (x:number, y:number) => x + y
//定义一个函数类型 -- compute,但是没有具体的实现let compute: (x:number, y:number) => number
//实现compute
compute = (a, b) => a + b

//对象
let obj: object = {x: 1, y: 2}
//在ts中不允许修改ts的属性,因为我们只是简单指定了obj的类型是object,并没有具体定义它应该包含哪些属性
// obj.x = 3;
let obj1: {x: number, y: number} = {x: 1, y: 2}
//这样就可以修改obj1的属性了
obj1.x = 3;

//symbol(具有唯一的值)
let s1: symbol = Symbol() //显示的声明
let s2 = Symbol() //直接定义也可以
console.log(s1 === s2) //false

//undefined, null
let un: undefined = undefined
//如果变量声明为undefined,就不可以赋值为其它类型,只能赋值它本身
// let un1: undefined = 1 //报错
let nu: null = null
//需要在tsconfig.json中把"strictNullChecks": false, 启动并为false,还可以用联合类型兼容
// str = null 

//void(在js中是操作符,他可以让任何表达式返回undefined -- void 0)
let noReturn = () => {}

//any(在ts中不指定一个变量的类型,那么默认就是any类型,就和js没有区别了)
let x
x = 1
x = []
x = () => {}

//never(永远不会有返回值的类型)
let error = () => {
    throw new Error('error')
}
let endless = () => {
    while(true){}
}

你可能感兴趣的:(TypeScript -- 基本类型)