TypeScript-类

  • TS 中的类和 ES6 中的类 几乎 一样

阅读本章节之前建议先阅读一下以下的文章:

  1. 66-JavaScript-ES6类和对象
  2. 67-JavaScript-ES6继承

TS 中的类

  • 和 ES6 的区别, 需要先定义实例属性, 才能够使用实例属性
class Person {
    // 实例属性
    name: string;
    age: number;

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

    // 实例方法
    say(): void {
        console.log(`我的名称叫${this.name}, 我的年龄是${this.age}`);
    }

    // 静态属性
    static food: string;

    // 静态方法
    static eat(): void {
        console.log(`我正在吃${this.food}`);
    }
}

let p = new Person('BNTang', 18);
p.say();

Person.food = '蛋挞';
Person.eat();

TS 中的继承

class Person {
    // 当前实例的实例属性
    name: string;
    age: number;

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

    // 当前实例的实例方法
    say(): void {
        console.log(`我的名称叫${this.name}, 我的年龄是${this.age}`);
    }

    // 当前类的静态属性
    static food: string;

    // 当前类的静态方法
    static eat(): void {
        console.log(`我正在吃${this.food}`);
    }
}

let p = new Person('BNTang', 18);
p.say();

Person.food = '蛋挞';
Person.eat();


class Student extends Person {
    // 当前实例的实例属性
    book: string;

    constructor(name: string, age: number, book: string) {
        super(name, age);
        this.book = book;
    }

    // 当前实例的实例方法
    say(): void {
        console.log(`我是重写之后的say-${this.name}${this.age}${this.book}`);
    }

    // 当前类的静态方法
    static eat(): void {
        console.log(`我是重写之后的eat-${this.food}`);
    }
}

let stu = new Student('zs', 18, 'BNTang');
stu.say();
Student.food = '冰淇淋';
Student.eat();

end02

posted @   BNTang  阅读(36)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示