Tips:在ts中凡是 :的地方都是声明类型例如

  1. var str:string = "hello world";
  2. //不仅要声明变量,而且要指明其类型

typescript中为了使编写代码更规范,更有利于维护。增加了类型校验,在typescript中主要给我们提供了以下数据类型。

  1. number
  2. string
  3. boolean
  4. Array
  5. object
  6. tuple(元组)
  7. enum(枚举)
  8. any(任意类型)
  9. nullundefined
  10. void
  11. never

一、类型校验

var str = "hello world";
str = true; //报错,因为typescript已经认定它为string类型
console.log(str);
var a:string = "hello world";
console.log(a);

1-1 定义数组的方式

var arr:string[] = ['html','css','javascript'];
var arr:Array<number> = [1,2,3];
List<int> arr = [1,2,4];

1-2 元组

在JS中元组是一个被限定的数组

给数组每一个元素指定一种类型

let arr:[number,string] = [123,"hello world"]

1-3 枚举类型

enum Status {
    success = 200,
    error = 404,
    redirect = 301,
    serverError = 500
}
var s:Status = Status.success;
console.log(s);

1-4 任意类型any

var str:any = "hello world";
str = true;
console.log(str);

1-5 null和undefined 其他(never类型)

var num:number | undefined;
console.log(num);
var num:null;
num =124; //报错,因为已经指明为null类型
var num:number | null;
num  = 30;

1-6 void类型—在方法中使用

typescript中的void表示没有任何类型,一般用于定义方法的时候方法没有返回值。

function run():void{
    console.log("run")
}
run();
function go():number{
    return 10;
}
console.log(go())

dart中的void

void go(){
  print("hello world");
}
void main(){
  go();
}

1-7 never类型

是其他类型(包括null和undefined)的子类型,代表从不会出现的值。这意味着声明never的变量只能被never类型所赋值。

1-8 object

var obj:object = {name:"zhang",age:19};
console.log(obj['name'])

二、字面量类型

使用模式:字面量类型配合联合类型一起使用。
使用场景:用来表示一组明确的可选值的列表

function http(method:"get"|"post"|"put"|"delete"){
    console.log(method)
}
http("get");

解释:参数method的值只能是get/post/put/delete中的任意一种。
优势:相比于string类型,使用字面量类型更加精确,严谨。