typescript语法
因公司项目中有使用 typescript,虽然项目里将其转为了js,但是怎么能停下学习的脚步呢?搞起来!此博文用来总结学习成果和方便后期回顾。总的来说typescript语法类似java和kotlin的结合体,如果你还不熟悉js当然是先去学好js再考虑接触typescript,毕竟它只是js的一个超集。
typescript安装
安装ts
1
npm install -g typescript
运行ts命令行
1
tsc -h
IDE
1
推荐使用visual studio code
基本数据类型
boolean
1
var isDone:boolean = true;
nunber
1
var width:number = 100;
string
1
va name:string = "hello";
Array
1
2var arr:number[] = [1,2,3];
var arr:Array<number> = [1,2,3];enum
1
enum Color {Red,Green,Blue}
any(不确定类型)
1
2
3
4
5
6// 不确定简单变量类型
var anyField:any = "hello";
notSure = true;
// 不确定数组类型
var anyArr = [1,"hello",true];
anyArr[0] = "world";void
1
2
3function test():void{
console.log("hello world");
}
可选属性
1 | interface ICar { |
类
类的定义
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22/*
* 类的定义
*/
class User {
// 普通属性
private name:string;
// 静态属性
public static age:number = 30;
// 构造方法
constructor(name:string){
this.name = name;
}
// 普通方法
public say():void{
//
}
}
/*
* 类的使用
*/
var user:User = new User("whh");
user.say();类的继承
1
2
3
4
5
6class User {}
class Student extends User{
public say():void{
//
}
}Get\Set 访问器
1
2
3
4
5
6
7
8
9
10
11class User {
private name:string;
//
get getName():string{
return this.name;
}
//
set setName(name:string):viod{
this.name = name;
}
}
接口
接口定义
1
2
3
4
5interface ICar {
var color:string;
run();
getType:()=>string
}接口的实现
1
2
3
4class Bus implements ICar {
color:string;
getType:()=>"Bus";
}
方法重载
方法的重载只和方法名称和参数有关系,和返回类型无关。
1 | class User { |
typescript文件编译
1 | tsc [目标文件] [输出文件] |