如何使用TypeScript中的访问修饰符(public、private、protected)?

在TypeScript中,访问修饰符是一种用于限制类成员(属性和方法)访问权限的标识符。它可以帮助我们控制类成员的可见性和可访问性。


1. public修饰符


public是默认的访问修饰符。使用public修饰符可以使类的成员在类内部和外部均可访问。


class Person {
    public name: string;
    public age: number;

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

    public sayHello(): void {
        console.log(`Hello, my name is ${this.name}, I'm ${this.age} years old.`);
    }
}

let person = new Person('John', 25);
console.log(person.name);
console.log(person.age);
person.sayHello();

在上面的代码中,name和age都使用了public修饰符,所以它们可以在Person类内部和外部访问。sayHello方法也使用了public修饰符,可以被外部调用。


2. private修饰符


private修饰符用于限制类成员只能在类内部访问。外部无法访问private修饰的成员。


class Person {
    private name: string;
    private age: number;

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

    private sayHello(): void {
        console.log(`Hello, my name is ${this.name}, I'm ${this.age} years old.`);
    }
}

let person = new Person('John', 25);
console.log(person.name); // 编译错误,无法访问
console.log(person.age); // 编译错误,无法访问
person.sayHello(); // 编译错误,无法访问

在上面的代码中,name、age和sayHello方法都使用了private修饰符,所以它们只能在Person类内部访问。外部无法访问。


3. protected修饰符


protected修饰符用于限制类成员只能在类内部和子类中访问。外部无法访问protected修饰的成员。


class Person {
    protected name: string;
    protected age: number;

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

class Student extends Person {
    public school: string;

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

    public displayInfo(): void {
        console.log(`Name: ${this.name}, Age: ${this.age}, School: ${this.school}`);
    }
}

let student = new Student('John', 25, 'ABC School');
console.log(student.name); // 编译错误,无法访问
console.log(student.age); // 编译错误,无法访问
student.displayInfo();

在上面的代码中,name和age都使用了protected修饰符,所以它们只能在Person类内部和子类中访问。外部无法访问。displayInfo方法没有使用修饰符,默认是public修饰符,可以被外部调用。


通过本文的介绍,相信你已经了解了TypeScript中访问修饰符的使用方法。在实际开发中,合理使用访问修饰符可以提高代码的安全性和可维护性。

猿教程
请先登录后发表评论
  • 最新评论
  • 总共0条评论