TS的面向对象

1-1  对象 object (key to type)
const person ={
    firstName :'a',
    lastName :'b',
    age:18
}

object 与any的区别
    ①object定义更为精确
    ②object相当于any的子集

1-2 interface 
高内聚、低耦合:功能相关的事物放在同一个集合中形成一个模块,模块是互相独立的,不同的模块之间应该保持低耦合的状态

let drawPoint = (point) =>{
    console.log(point.x,point.y)
}
drawPoint({x:105,y:23});

interface Point {
    x:number;
    y:number;
}

1-3 class

interface IPoint {
    x:number;
    y:number;
    drawPoint:() => void;
    getDistances:(p:IPoint) => number;
}

class Point implements IPoint{
    //x:number;
    //y:number;
    
    constructor(pulic x:number,pulic y:number){
        this.x = x;
        this.y = y;
    }
    
    drawPoint = () =>{
       console.log("x:",this.x,"y:",this.y)
    }
    getDistances =(p:IPoint) =>{
        return Math.pow(p.x - this.x,2) + Math.pow(p.y - this.y,2)
    }
}

const point = new Point(2,3)  //对象(object),实例instance

point.drawPoint()
注意
    ①js的构造函数不可以重载(overlord),ts可以
    ②通过使用访问修饰符 pulic、private、protected顺便完成成员变量的声明和初始化,不可以使用参数缺省(?)的方法

1-4 访问修饰符

Public:所有定义成public的属性和方法都可以在任何地方进行访问,默认就是public。

Private:所有定义成private的属性和方法都只能在类定义内部进行访问,使用set给它赋值,使用get取值。

Protected:多有定义成protected的属性和方法可以从类定义内部访问,也可以从子类中访问。


1-5 module

1-6 泛型(可以用任何一个数字代替,约定俗成是T)

let lastInArray = <T>(arr:Array<T>) =>{
    return arr[arr.length - 1];
}
const l1 = lastInArray(["A","b"])

多泛型
let makeTuple = <T,Y>(x:T,y:Y) => [x,y]
const v1 = makeTuple(1,"noe")


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值