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();

最后


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

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

相关文章
|
1月前
|
JavaScript 前端开发
Vue2整合TypeScript:借助vue-property-decorator以类模式编写组件
Vue2整合TypeScript:借助vue-property-decorator以类模式编写组件
133 3
|
5月前
|
JavaScript 前端开发 程序员
TypeScript 类
TypeScript 类
|
2月前
|
JavaScript
typeScript进阶(13)_类与注意事项(八项特性)
TypeScript的类支持特性包括:构造函数、继承(使用`extends`)、公有/私有/受保护修饰符、只读修饰符、参数属性、存取器(getters/setters)、抽象类(用`abstract`声明)。类可用作类型。
24 0
typeScript进阶(13)_类与注意事项(八项特性)
|
4月前
|
JavaScript 前端开发
TypeScript(七)类
TypeScript(七)类
39 0
|
5月前
|
JavaScript
TypeScript类
TypeScript类
|
2月前
|
JavaScript
typeScript进阶(9)_type类型别名
本文介绍了TypeScript中类型别名的概念和用法。类型别名使用`type`关键字定义,可以为现有类型起一个新的名字,使代码更加清晰易懂。文章通过具体示例展示了如何定义类型别名以及如何在函数中使用类型别名。
40 1
typeScript进阶(9)_type类型别名
|
1月前
|
JavaScript 前端开发 安全
深入理解TypeScript:增强JavaScript的类型安全性
【10月更文挑战第8天】深入理解TypeScript:增强JavaScript的类型安全性
47 0
|
1月前
|
JavaScript 前端开发 开发者
深入理解TypeScript:类型系统与实用技巧
【10月更文挑战第8天】深入理解TypeScript:类型系统与实用技巧
|
2月前
|
存储 JavaScript
typeScript进阶(11)_元组类型
本文介绍了TypeScript中的元组(Tuple)类型,它是一种特殊的数组类型,可以存储不同类型的元素。文章通过示例展示了如何声明元组类型以及如何给元组赋值。元组类型在定义时需要指定数组中每一项的类型,且在赋值时必须满足这些类型约束。此外,还探讨了如何给元组类型添加额外的元素,这些元素必须符合元组类型中定义的类型联合。
47 0
|
2月前
|
JavaScript
typeScript进阶(10)_字符串字面量类型
本文介绍了TypeScript中的字符串字面量类型,这种类型用来限制变量只能是某些特定的字符串字面量。通过使用`type`关键字声明,可以确保变量的值限定在预定义的字符串字面量集合中。文章通过示例代码展示了如何声明和使用字符串字面量类型,并说明了它在函数默认参数中的应用。
37 0
下一篇
无影云桌面