在桌面打开命令窗口npm i typescript -gnpm i ts-node -gtsc --version
ts编译成js
1. tsc hello.ts2. ts-node hello.ts3. Code-Runner //如果有乱码,
2.ts中的数据类型
var s:string = "hello world";var n:number = 10;var a:string[]=["hello","world"]var b:boolean = truevar arr:Array<number> = [1,2,3]var obj:object = {name:"cheng",age:13}var list:Array<object> = [{name:"cheng",age:14}]console.log(s);
2-2 元组
给数组的每个元素指定一个类型var s:[string,number] = ["hello",1];console.log(s);
2-3 enum 枚举类型
定义一个特定类型的集合enum Status {success=200,error=404,serverError=500}var success:Status = Status.success;console.log(success)
2-4 null-undefined
var num = null;num =10 //报错
3.声明函数
//声明一个有返回值的函数function go():string{return "hello"}//没有返回值的函数function show():void{console.log("hello")}
4.函数的传参
function fun(s:string):string{console.log(s);return s;}
//默认参数function fun(s:string="hello world"):string{console.log(s);return s;}fun("good");
//返回值是任意类型function func(s:any):any{return s;}
类
class Person{//实例的namename:stringage:numberconstructor(name:string,age:number){this.name=name;this,age=age;}getName():void{console.log(Person.name)console.log(this.name);}}var p:Person = new Person("cheng",20);p.getName();
class Person{/* 实例的name */name:stringage:numbergetName():void{console.log(this.name);}}var p:Person = new Person();p.getName();//当没有构造函数的时候,代码底层有自动补全构造函数
4-1 static
//static修饰的变量是类所共有的,只能通过类名去调用。class Person{/* 实例的name */static skill:string = "js";name:stringage:numbergetName():void{console.log(Person.skill)console.log(this.name);}}var p:Person = new Person();p.getName();
5-1定义一个泛型函数
好处:兼顾了灵活性和类型检查
function goTest<T>(s:T):T{return s;}goTest<string>("1000");goTest<number>(100);
