typescript的class类

188 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第6天,点击查看活动详情

1. TypeScript 哪些技能基于类?

TypeScript 类是 OOP 的技术基石,包括类、属性封装丶继承、多态、抽象丶泛型。紧密关联的技术包括方法重写,方法重载,构造器,构造器重载,类型守卫,自定义守卫,静态方法、属性,关联引用属性,多种设计模式等。

oop一般指面向对象程序设计。 面向对象程序设计(Object Oriented Programming)作为一种新方法,其本质是以建立模型体现出来的抽象思维过程和面向对象的方法。

2. 什么是类

定义:类就是拥有相同属性和方法的一系列对象的集合,类是一个摸具,是从这该类包含的所有具体对象中抽象出来的一个概念,类定义了它所包含的全体对象的静态特征和动态特征。

类有静态特征和动态特征【以大家最熟悉的人类为例】

静态特征【软件界叫属性】姓名,年龄,地址,身份证号码,联系方式,家庭地址,微信号

动态特征【软件界叫方法】吃饭,走路

【再看桌子类】

静态特征【属性】高度,宽度,颜色,价格,品牌,材质

动态特征【方法】承载

【来看订单类】

静态特征 【属性】 订单号【订单id】,下单时间,下单顾客,订单详情,顾客微信,收件地址,负责客服

动态特征 【方法】 下单,修改订单,增加订单,删除订单,查询订单,退单 【这一些方法真正开发会归为OrderService 类】 但从广义来说都同属于订单系列类的方法。

  • 举个🌰
// 姓名 年龄 身份证号码 联系方式 家庭地址 微信号
class Person {
    // 静态属性
    // 
    public name: string = 'noname'		// 姓名,初始值为noname
    public age: number = 0				// 年龄,初始值为0
    public idcard: string = '0'			// 身份证,初始值为0
    public phone: string = '13000000000'// 联系方式,初始值为13000000000
    public addr: string = '广东省深圳市'	// 家庭地址,初始值为广东省深圳市
    public wx: string = 'xiaohe'		// 微信号,初始值为xiaohe

    // 对象的变量 = 实例的变量 = 类的(非静态)属性 = 简称属性
    
    // 实例属性或者对象属性
    // 有部分属性如果不需要修改,那么可以不传,直接获取默认值。
    constructor(_name: string, _age: number, _phone: string) {
        this.name = _name
        this.age = _age
        this.phone = _phone
    }

    // 定义公开的方法
    public playGameFn(wath: string, who: string, address: string): void {
         console.log(`${ this.name }${ who }${ address }里玩${ wath }`)
    }
}

const zs = new Person('张三', 18, '13000000001')
zs.playGameFn('超级马里奥', '李四', '科兴科技园')

console.log(zs)

最后

公众号:小何成长,佛系更文,都是自己曾经踩过的坑或者是学到的东西

有兴趣的小伙伴欢迎关注我哦,我是:何小玍。大家一起进步鸭