TypeScript-类存取器 和 TypeScript-抽象类

简介: TypeScript-类存取器 和 TypeScript-抽象类

存取器概述


通过 getters/setters 来截取对对象成员的访问

class Person {
    private _age: number = 0;
    set age(val: number) {
        console.log('进入了set age方法');
        if (val < 0) {
            throw new Error('人的年龄不能小于零');
        }
        this._age = val;
    }
    get age(): number {
        console.log('进入了get age方法');
        return this._age;
    }
}
let p = new Person();
p.age = 18;
// 如下👇代码本质类同:p.age(-6);
// p.age = -6;
console.log(p.age);




抽象类概述


抽象类是专门用于定义那些不希望被外界直接创建的类的 抽象类一般用于定义基类 抽象类和接口一样用于约束子类

  • 首先来看看没有抽象类的实现写法,在 TypeScript-类方法修饰符 章节当中我已经编写过了,这里就不在编写了,就直接开始看抽象类即可

错误示例:

abstract class Person {
    abstract name: string;
    abstract say(): void;
}
class Student extends Person {
    name: string = 'BNTang';
    say(): void {
        console.log(`我的名字是${this.name}`);
    }
}
let p = new Person();

正确示例:

abstract class Person {
    abstract name: string;
    abstract say(): void;
}
class Student extends Person {
    name: string = 'BNTang';
    say(): void {
        console.log(`我的名字是${this.name}`);
    }
}
let stu = new Student();
stu.say();




抽象类和接口的区别


接口中只能定义约束, 不能定义具体实现 而抽象类中既可以定义约束, 又可以定义具体实现

abstract class Person {
    abstract name: string;
    abstract say(): void;
    eat(): void {
        console.log(`${this.name}正在吃东西`);
    }
}
class Student extends Person {
    name: string = 'BNTang';
    say(): void {
        console.log(`我的名字是${this.name}`);
    }
}
let stu = new Student();
stu.say();
stu.eat();

最后


本期结束咱们下次再见👋~

🌊 关注我不迷路,如果本篇文章对你有所帮助,或者你有什么疑问,欢迎在评论区留言,我一般看到都会回复的。大家点赞支持一下哟~ 💗

相关文章
|
JavaScript 前端开发 程序员
TypeScript 类
TypeScript 类
|
12月前
|
JavaScript
typeScript进阶(13)_类与注意事项(八项特性)
TypeScript的类支持特性包括:构造函数、继承(使用`extends`)、公有/私有/受保护修饰符、只读修饰符、参数属性、存取器(getters/setters)、抽象类(用`abstract`声明)。类可用作类型。
96 1
typeScript进阶(13)_类与注意事项(八项特性)
|
11月前
|
JavaScript 前端开发
Vue2整合TypeScript:借助vue-property-decorator以类模式编写组件
Vue2整合TypeScript:借助vue-property-decorator以类模式编写组件
530 3
|
JavaScript 前端开发
TypeScript(七)类
TypeScript(七)类
179 0
|
JavaScript
TypeScript类
TypeScript类
|
2月前
|
JavaScript 前端开发
揭秘 TypeScript 条件类型:超越简单类型检查
揭秘 TypeScript 条件类型:超越简单类型检查
|
2月前
|
JavaScript 安全 索引
TypeScript 高级类型工具:Partial, Required, Record 的妙用与陷阱
TypeScript 高级类型工具:Partial, Required, Record 的妙用与陷阱
|
2月前
|
JavaScript 安全 IDE
TypeScript 类型体操:别让 `any` 毁了你的安全网!
TypeScript 类型体操:别让 `any` 毁了你的安全网!
|
2月前
|
JavaScript 安全 编译器
TypeScript 类型守卫:让你的类型系统更智能
TypeScript 类型守卫:让你的类型系统更智能
|
7月前
|
存储 安全 JavaScript
TypeScript-内置应用程序类型-Recode
通过使用 `Record` 类型,开发者可以显著提升代码的安全性和可维护性。无论是配置对象、字典结构还是动态表单,`Record` 类型都提供了一个简洁、类型安全的解决方案。
313 82

热门文章

最新文章