文章目录
typescript 是javascript 的超集,主要提供了类型系统和对 ES6 的支持,是一种规范,而不是一种语言;
定义一个变量
let num:number = 10; //声明一个number 类型的变量 , 不能在将num改变类型;
…
定义一个数组
let arr:number[] = [1,2,3] let arr:array<number> //定义一个数字类型的数组;
定义一个函数
function f1(p:number):void{} void 表示没有返回值; p:number 规定只能传值为数字类型的
function f1():boolear{} 返回一个布尔值;
定义一个枚举类型
enum Season{ enum 定义枚举类型的关键字, 在打印Season 回枚举该数据;
Spring=1,
Summer=2,
Autumer=3,
Winter =4
}
定义一个对象
使用字面量创建 于js相同
使用calss 创建一个类 在实例化一个对象;
calss People(){
name:string; //此处于es6定义一个类不同 ,需要先声明才能使用;
constructor(name){
this.name = name;
}
}
使用类创建一个对象;
let person:People = new People("张三");
参数为People类对象, People类对象可以作为参数,具有People类特点的对象也可以作为这个函数参数(这一特点会在接口处显示)
function f3(p: People): void {
// console.log("")
p.name = "李四"
p.say()
}
我们在声明一个类是 可以定义在属性的私有或者是受保护的
calss Dog{
public name:string; //公开的属性;
private age: string; //私有属性;
protected sex: boolean //受保护的;
static one : string; //静态属性 ,使用类进行方位的属性和方法;
}
在ts里面定义类的时候,会把属性定义私有的,函数定义成共有,私有的属性和方法只能在本类里面进行使用
共有的属性和方法在类外部也能正常访问,受保护的属性和函数不能在函数外部访问
接口:其实是一个对象的格式,可以在对象里面添加属性和方法,但是只是添加,不进行
赋值和方法的实现,对行为的抽象,而具体如何行动需要由类(classes)去实现(implement)
接口和继承的区别:继承只能是单继承,一个类可以实现多个接口,
定义接口使用interface:接口名字
接口让某个类去实现接口,必须把接口里面的属性和方法都得实现
interface animal{
name:string,
age?:number, // ? 代表这个属性可以实现或者不实现
say():void,
run?():void
}
使用类实现一个接口
class Cat implements animal