typescript2

一、typescript
1.for of
forEach() for in && for of
for of 忽略数组的属性,但是可以跳出循环
语法:
var (var x of arr1){
if(x>2) break;
console.log('for of',x);
}
for of可以作为遍历数组的方法,也可以遍历字符串
for(var y of 'hello word'){
console.log('for of str',y);
}

2.类 class
es6中的class可以看做是一个语法糖,es5都可以做到,es6中的class写法只是让对象原型更加清晰,更加类似于面向对象编程
1)类是ts的核心,使用ts做开发时,大部分代码都是写在类里面的
语法:
class Person{
name1;//属性
eat(){//方法
console.log(`$(this.name1)喜欢吃肉`);
}
}
var p1=new Person();
p1.name1='小红';
p1.eat();
var p2=new Person();
p2.name1='小黄';
p2.eat();

2)类的访问控制符
public (默认):公开的
公共属性,可以在任何地方访问(类的内部,类的实例化对象,类的子类)
private:私有的
私有属性和方法只能在类的内部访问,其他任何地方都不能访问
protected:受保护的
受保护的属性和方法,只能在类的内部和子类内部中访问,其他地方不能访问
3)类的构造函数
constructor 构造器
语法:
class Student{
constructor(){
//当类被实例化时(new)才会调用构造函数
super();
}
}


类的构造函数的作用:用于实例化对象属性初始化
ts中直接定义类是不能传参的,如果传递了参数,就需要使用构造器接受参数,并且可以在构造器中对属性今夕初始化值
eg:
class Dog{
public name: string;
age: number;
constructor(name:string,age:number){
//属性初始化
this.name=name;
this.age=age;
}
eat(){
console.log(`${this.name}喜欢吃白菜`);
}
}
var dog=new Dog('阿黄',3);
dog.eat();

4)类的继承 extends
语法:

class Father{
public name:string;
age:number;
//构造函数中的参数用于接受子类调用super是传入的值
constructor(name:string,age:number){
this.name=name;
this.age=age;
}
}
class Son extends Father{
constructor(){
//super方法用于子类继承父类的属性和方法
super(name,age);//super中穿的参数,在父类的构造函数中接受
}
}

5.泛型
声明变量时候可以指定变量的类型,还可以指定变量里存储的内容的类型,指定数组中只能存放什么类型的元素
语法:
var strArr:Array<string>=[];

三、ts中的接口 interface
接口用于建立某种代码规范,让其他开发者在调用某个方法或创建新的类时,必须遵循接口锁规定的代码规范(数据类型的规范)
js中没有接口的定义,ts中提供了两个关键字来支持接口的特效:
声明接口:interface
声明某个类实现接口:implements
四、模块 module
模块可以帮助程序员将代码分隔为可重用的单元,开发者可以自己决定将模块中的那些资源(变量,方法,类,暴露出去供外部使用,那些资源仅仅在当前模块使用,在ts中,一个模块就是一个文件,两个关键词:
导出:export(将资源暴露)
导入:import(导入资源)

猜你喜欢

转载自www.cnblogs.com/txf-123/p/11550483.html