Tips:在ts中凡是 :的地方都是声明类型例如
var str:string = "hello world";
//不仅要声明变量,而且要指明其类型
typescript中为了使编写代码更规范,更有利于维护。增加了类型校验,在typescript中主要给我们提供了以下数据类型。
number
string
boolean
Array
object
tuple(元组)
enum(枚举)
any(任意类型)
null和undefined
void
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类型,使用字面量类型更加精确,严谨。