前端 TS 快速入门之三:class 类

简介: 前端 TS 快速入门之三:class 类

前言:例子中 ts 和 js 中 class 做对比,方便更深刻的理解

1. class 属性定义

// ts
class Person {
  // public 默认, 公开的
  public name: string;
  // private 私有属性, 实例和继承不可访问, 本身可以访问
  private age: number;
  // protected 受到保护的, 实例不能访问, 继承和本身可以访问
  protected sex: string;
  // static 静态属性, 只能类本身访问
  static adress: string;
  // readonly 只读, 不能修改
  readonly love: string;
 
  constructor(name: string, age: number, sex: string, love: string) {
    this.name = name;
    this.age = age;
    this.sex = sex;
    this.love = love;
  }
}
 
// js
class Person {
  // static 静态属性, 只能类本身调用
  static age = 18;
  constructor(name) {
    this.name = name;
  }
}

2. 继承

// ts
class Person {
  name: string;
  constructor(name: string) {
    this.name = name;
  }
}
class SuperPerson extends Person {
  age: number;
  constructor(name, age) {
    super(name);
    this.age = age;
  }
}
 
// js
class Person {
  constructor(name) {
    this.name = name;
  }
}
class SuperPerson extends Person {
  constructor(name, age) {
    super(name);
    this.age = age;
  }
}

3. 存取器

当一个存取器只带有 get 却不带有 set 时,它会被自动推断为 readonly。

// ts
class Person {
  name: string;
  constructor(name: string) {
    this.name = name;
  }
  get nameL(): string {
    return `${this.name}.length`;
  }
  set nameL(value: string) {
    this.name = `my newName is ${value}`;
  }
}
 
// js
class Person {
  constructor(name) {
    this.name = name;
  }
 
  get nameL() {
    return this.name.length;
  }
 
  set nameL(value) {
    this.name = `my newName is ${value}`;
  }
}

4. 抽象类

抽象类只能作为其他派生类的基类使用,抽象类不能被实例化,它具有如下特点:

- 抽象类可以包含成员的实现细节,且抽象类必须用 abstract 声明

- 抽象类里不含方法体的方法称为抽象方法,使用 abstract 声明,抽象方法必须被子类实现(抽象方法必须使用 abstract 关键字声明,且可以包含访问修饰符)

// ts
abstract class Person {
  name: string;
  constructor(name: string) {
    this.name = name;
  }
  // 抽象方法: 必须被子类实现
  abstract sayHi(): void;
}
class Student extends Person {
  study: string;
  constructor(name: string, study: string) {
    super(name);
    this.study = study;
  }
  sayHi() {
    console.log("hi");
  }
}
 
// js 中没有抽象类

上一章:前端 TS 快速入门之二:接口

下一章:前端 TS 快速入门之四:函数


目录
打赏
0
1
1
0
15
分享
相关文章
SpringBoot的 ResponseEntity类讲解(具体讲解返回给前端的一些事情)
本文讲解了SpringBoot中的`ResponseEntity`类,展示了如何使用它来自定义HTTP响应,包括状态码、响应头和响应体,以及如何将图片从MinIO读取并返回给前端。
308 3
【前端学java】JDBC快速入门
【8月更文挑战第12天】JDBC快速入门
52 2
【前端学java】JDBC快速入门
【前端学JAVA】有手就会!10min快速入门java的基础语法(2)
【8月更文挑战第8天】10min快速入门java的基础语法
65 2
【前端学JAVA】有手就会!10min快速入门java的基础语法(2)
前端掌握 ts 的类型体操
【8月更文挑战第23天】前端掌握 ts 的类型体操
70 4
【前端学java】java中的Object类和前端中的Object有什么区别(9)
【8月更文挑战第10天】java中的Object类和前端中的Object有什么区别
64 0
【前端学java】java中的Object类和前端中的Object有什么区别(9)
【前端学java】面向对象编程基础-类的使用(4)
【8月更文挑战第9天】面向对象编程基础-类的使用
38 0
解锁CSS神秘面纱:深度剖析类选择器,掌握前端设计的绝密武器!
解锁CSS神秘面纱:深度剖析类选择器,掌握前端设计的绝密武器!
【前端学java】类中的访问权限详解,通俗易懂(5)
【8月更文挑战第9天】类中的访问权限详解,通俗易懂(5)
81 0
一文读Web开发 之接口后端接口、类与前端请求、拦截器编写
一文读Web开发 之接口后端接口、类与前端请求、拦截器编写
289 6
vue 快速入门+vite前端构建工具
vue 快速入门+vite前端构建工具
125 0

热门文章

最新文章

  • 1
    【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    12
  • 2
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    27
  • 3
    详解智能编码在前端研发的创新应用
    12
  • 4
    智能编码在前端研发的创新应用
    14
  • 5
    VSCode AI提效工具,通义灵码前端开发体验
    29
  • 6
    大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
    18
  • 7
    【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    3
  • 8
    以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
    12
  • 9
    【01】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-优雅草卓伊凡拟开发一个一站式家政服务平台-前期筹备-暂定取名斑马家政软件系统-本项目前端开源-服务端采用优雅草蜻蜓Z系统-搭配ruoyi框架admin后台-全过程实战项目分享-从零开发到上线
    9
  • 10
    【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
    6
  • AI助理

    你好,我是AI助理

    可以解答问题、推荐解决方案等