TypeScript前端学习(四)

前言

        还是分享的笔记,大佬请绕行!


一、类的定义和继承

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

console.log("----对象---");
var people = {
   
    "name": "张三",
    syaHi() {
   
        console.log("HI,my name is " + this.name);
    }
}
people.syaHi();

console.log("----类---");
class People {
   
    name: string;

    constructor(name: string) {
   
        this.name = name;
    }

    syaHi() {
   
        console.log("HI,my name is " + this.name);
    }
}

//实例化类
var people2 = new People("李四");
people2.syaHi();

console.log("----类的继承---");
//类的继承
class Student extends People {
   
    constructor(name: string) {
   
        super(name);
    }

    syaHi() {
   
        console.log("HI,my name is " + this.name);
    }

    makeWorks() {
   
        console.log("我在做作业");
    }
}

var student = new Student("小明");
student.syaHi() + "," + student.makeWorks();

class Teacher extends People {
   
    subject: string;

    constructor(name: string, subject: string) {
   
        super(name);
        this.subject = subject;
    }

    syaHi() {
   
        super.syaHi();
        console.log("同学们好");
    }

    teach() {
   
        console.log(this.name + ",我在教" + this.subject);
    }
}

var teacher = new Teacher("李老师", "数学");
teacher.syaHi();
console.log("----------")
teacher.teach();

示例效果
在这里插入图片描述

二、类的访问权限

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

console.log("----类的访问权限---");
class Animal {
   
    //private className:string="Animal";  //私有属性,只能在类内部访问(继承他的类用就会报错了)
    className: string = "Animal";

    protected constructor() {
   
        this.className = "Animal";    //受保护的构造函数,只能在类内部访问(继承他的类用就会报错了)
    }
}
//var animal = new Animal();  //TS2674: Constructor of class Animal is protected and only accessible within the class declaration.

class Dog extends Animal {
   
    name: string;

    constructor(name: string) {
   
        super();
        this.name = name;
    }

    run() {
   
        console.log(this.name + "在跑");
    }
}
var dog = new Dog("小狗");
dog.run();

示例运行效果
注释的语句,报错描述写在注释里了
报错就是因为设置了protected等关键字

三、只读属性与存取器

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


console.log("----只读属性---")

//
class Circle {
   
    readonly PI: number = 3.14;
    readonly r: number;

    constructor(r: number) {
   
        this.r = r;
    }

    getArea() {
   
        return this.PI * this.r * this.r;
    }
}
var circle = new Circle(10);
console.log(circle.getArea());

//circle.r = 20; //TS2540: Cannot assign to 'r' because it is a read-only property.

console.log("----存取器---");
class Circle2 {
   
    readonly PI: number = 3.14;
    protected r: number = 0;
    set R(r: number) {
   
        if (r < 0) {
   
            return;
        }
        this.r = r;
    }
    get R(): number {
   
        return this.r;
    }
    getArea() {
   
        return this.PI * this.r * this.r;
    }
}
var circle2 = new Circle2();
circle2.R = 10;
console.log(circle2.R);
console.log(circle2.getArea());

示例运行效果
在这里插入图片描述


总结

  • 看起来跟其他面向对象的后端语言真像
  • 这次没有用tsc命令生成js对比,有兴趣的可以自己生成对比看看
    纯粹的笔记备忘,uping!

相关推荐

  1. 作为前端TypeScript开发人员学习Rust的经验

    2023-12-28 05:44:02       32 阅读
  2. typescript 学习

    2023-12-28 05:44:02       47 阅读
  3. 前端深度学习Vue2框架(

    2023-12-28 05:44:02       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-28 05:44:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-28 05:44:02       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-28 05:44:02       87 阅读
  4. Python语言-面向对象

    2023-12-28 05:44:02       96 阅读

热门阅读

  1. uniapp 分页

    2023-12-28 05:44:02       60 阅读
  2. QT C++ TCP Socket 请求心知天气

    2023-12-28 05:44:02       67 阅读
  3. linux统计文件数量命令

    2023-12-28 05:44:02       59 阅读
  4. 记录 | python with用法及原理

    2023-12-28 05:44:02       60 阅读
  5. cfa一级考生复习经验分享系列(十二)

    2023-12-28 05:44:02       56 阅读
  6. 面试经典150题(50-53)

    2023-12-28 05:44:02       62 阅读
  7. Day01-Ajax

    2023-12-28 05:44:02       48 阅读
  8. MySQL5.7服务器系统变量(二)

    2023-12-28 05:44:02       50 阅读
  9. 深入了解 Python 的 import 语句

    2023-12-28 05:44:02       51 阅读
  10. Python批处理excel文件多个sheet汇总脚本

    2023-12-28 05:44:02       55 阅读