typescript是js的超集!
安装与编译
npm安装
npm install typescript
全局
npm install typescript -g
ts文件编译
tsc test.ts
返回值是一个js文件 监听
tsc test.ts --watch
typescript数据类型
let a:string="abc"; //字符串
let b:number=1 ; //数值
let c:string[]=["a","b","c"]; //字符串构成的数组
let d:number[]=[1,2,3] ; //数值构成的数组
let e:boolean=true ; //布尔值
let f:[number,string]=[1,"a"] ;//元祖类型 本质上是一个可以指定类型的数组
let g:any=1; //无限制
let h:any=a;
function fun():void{
alert(1); //空类型 因为没有返回值
// return a //报错 有返回值不为空
}
typescript的function(函数)
//参数和返回值可以限定类型 参数后面为返回值类型
//参数可以设置默认值
//ES5
function (name:string="老王"):string{
retrun 'hello'+name;
}
consolo.log(hello()) //hello老王
//ES6
let hello=(name:string):string=>"Hello ${name}"
console.log(hello("老王"))
let obj={a:1,b:1}
let add=({a,b}:{a:number,b:number})=>{return a+b}
typescript的class(类)
class Preson{
//属性可以定义私有或共有
//protected 只在自己的类里和子类可见
//private 只能在自己的类里可见
name:string,
costructor(name:string){
this.name=name; //构造函数入口
},
greet(){
return '${this.name}向你问哈马皮'
}
}
let laowang=new Person("老王");
console.log(laowang) //"老王向你问哈马皮"
//继承
//通过extends关键字来继承 super来引用父类
class Student extends Person{
major:string;
constructor(name:string,major:strong){
super(name);
this.major=major
},
studentgreent(){
retrun '${this.major}系的{this.name}向你问好'
}
}
let xiaoming=new Student("哲学","小明")
console.log(xiaoming) //哲学系的小明向你问好