TypeScript
. TypeScript是JavaScript的超级:js有的ts都有
实现TypeScipt向JavaScript的转变
ts-node 可以编辑和执行ts文件
//数组元素都为string类型
let arr1:string[]=["北京","上海","天津"]
// console.log(arr1);
//数组元素为string或者number
let arr2:(string|number)[]=["北京","上海",100,"天津",]
// console.log(arr2);
//数组元素为string或者number数组组成的
let arr3:string|number[]=[100]
// arr3=["北京"]
console.log(arr3);
//元祖限定元素数量和元素类别
let positon:[number,number]=[100,200]
//类型定义
// type mytype={name:string,age: number}
// let obj1: mytype={name: "张三",age: 18}
// console.log(obj1);
// ####################箭头函数 ###########################
// const fn1=(num1:number,num2: number):number=>{
// return num1+num2
// }
// console.log(fn1(5,20));
//############# 同时指定参数和返回值 ##################
// const fn3:(num1:number,num2:number)=>number=(num1,num2)=>{
// return num1+num2
// }
// console.log(fn3(500,100));
//######################viod类型没有返回值类型#############################
// const fn4=function(username:string):void {
// console.log("hello"+username);
// }
TS类的继承
- 创建实例对象,实例对象触发构造函数,并且传递参数,构造函数接受参数后并且赋值
1:通过 extends 来继承父类
2:通过 super 来初始化父类的构造函数 并且传递参数
class F{
name: string;
constructor(name: string){
this.name = name;
}
run():string{
return `${this.name}在健身`
}
}
let p1=new F("泰哥")
console.log(p1.run());
class S extends F{
constructor(name: string){
super(name)
}
}
let p2=new S("小泰")
console.log(p2.run());
p1:泰哥在健身
p2:小泰在健身
TS的接口
- 是对行为的抽象,而具体如何行动需要由类(classes)去实现(implement)
- 在TypeScript中,我们使用接口(Interfaces)来定义对象的类型。除了可用于对类的一部分行为进行抽象以外,也常用于对「对象的形状(Shape)」进行描述
interface objectType {
name: string;
age: number;
}
let obj: objectType = {
name: "高启强",
age: 30
}
// console.log(`我叫${obj.name},今年${obj.age}`);
我叫高启强今年30岁
///////////////////////
interface one {
uname: string,
ages: number,
address: string,
}
类定义会创建两个东西:类的实例类型和一个构造函数。 因为类可以创建出类型,
所以你能够在允许使用接口的地方使用类
class two implements one {
uname: string
ages: number
address: string
constructor(uname: string,ages: number,address: string){
this.uname = uname
this.ages = ages
this.address = address
}
}
let three=new two('陈金默',28,"旧厂街");
TS访问修饰符
. public(默认):公认,可以在任何地方被访问
. Protected:受保护,只在当前类和其子类中被访问(在其外部不可以)
. private:私有,只在当前类里面才可以被访问(在子类中或者类的外部都无法被访问)
. readonly: 只读修饰符 只可读,不可修改
枚举
ts中枚举类型就是,枚举里面的每个数据值都可以叫做元素,每个元素都有自己的编号,编号是从0开始的,依次递增加1 语法:
// enum 枚举名 {}
例如:
enum Color{
red, //0
green, //1
blue //2
}
在枚举类型中,属性的位置默认是从0开始的,color中red是第一个,默认位置为0,所以依次往下排列,值分别为:red:0, green:1, blue:2
像这样的:
enum Color{
red=10,
green,
blue=30
cyan
}
在这里将枚举内的`blue`默认值设为`30`,如果依次排列的话,打印的就是
10,11,30,31