TS的面向对象

本文介绍了TypeScript中的关键概念,包括对象、接口(Interface)、类(Class)以及访问修饰符(Public、Private、Protected)。通过示例展示了如何定义和使用它们,强调了TypeScript在类型系统上的严谨性,如object与any的区别,以及类的实现和成员访问控制。此外,还提到了泛型的使用,展示了如何创建和使用泛型函数。
摘要由CSDN通过智能技术生成

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")


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值