ts-数据类型

数据类型

布尔类型(boolean)

let flag:boolean = true;
// flag = "";

数字类型(number)

let a:number = 1;
a = 12.3;
// a = true;
console.log(a);

字符串类型(string)

let s: string = "hello";

数组类型(array)

// ES5
var arr = [ 1, "false", null, Boolean ];
// ts 中定义数组有三种方式
let arr: number[] = [1, 2, 3];
let arr: Array<string> = ["php", "javascript", "golang"];
let arr: any[] = [ 1, "false", null, Boolean ];

元组类型(tuple)

// 元组类型(tuple) 属于数组的一种
let arr: [string, number, boolean] = ["ts", 1, false];

枚举类型(enum)

/*
  enum 枚举名{
    标识符[=整型常数],
    标识符[=整型常数],
    ...
    标识符[=整型常数],
  } ;
*/

enum Color {
  red,
  blue,
  orange = 5,
  green,
}

let c: Color = Color.blue;
console.log(c); // 未赋值输出 索引值 1
c = Color.green;
console.log(c); // 1

任意类型(any)

let num: any = 123;
num = "hellp";
num = true;

// 任意类型的用处
let oBox: any = document.getElementById("box");
oBox.style.color = "red";

null 和 undefined

// null 和 undefined 其他(never)数据类型的子类型
let num: number | undefined | null;
console.log(num); // undefined
num = null;
console.log(num); // null
num = 123;
console.log(num); // 123

void类型

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

never类型

// 是其他类型(包括 null 和 undefined)的子类型, 代表不会出现的值. 意味着声明 never 的变量只能被 never 类型所赋值.
let n: never;
n = (() => {
  throw new Error("Error");
})();