TypeScript의 해당 클래스에서만 정적 메서드에 액세스할 수 있도록 하는 방법은 무엇입니까?
6604 단어 typescript
해당 클래스에서만 정적 메서드에 액세스할 수 있도록 하려면 TypeScript에서 정적 메서드 앞에
private
키워드를 사용하여 정적 메서드를 전용 정적 메서드로 만들어야 합니다.TL;DR
// a simple class
class Person {
name: string;
age: number;
// a private static method
private static sayHi() {
console.log("Hi, Person!");
}
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
}
// the `sayHi` static method
// cannot be accessed from outside the class
Person.sayHi(); // This is not allowed now ❌
예를 들어, 2개의 필드, 생성자 및 다음과 같은 정적 메서드가 있는
Person
라는 클래스가 있다고 가정해 보겠습니다.// a simple class
class Person {
name: string;
age: number;
// static method
static sayHi() {
console.log("Hi, Person!");
}
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
}
// the `sayHi` static method
// can be accessed from outside the class
Person.sayHi(); // This is allowed now
현재 위의 클래스에서
sayHi
정적 메서드는 public이며 클래스 외부에서 액세스할 수 있습니다.Person
클래스 내에서만 액세스할 수 있도록 하려면 다음과 같이 정적 메서드 앞에 private
키워드를 추가해야 합니다.// a simple class
class Person {
name: string;
age: number;
// a private static method
private static sayHi() {
console.log("Hi, Person!");
}
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
}
// the `sayHi` static method
// cannot be accessed from outside the class
Person.sayHi(); // This is not allowed now ❌
위의 코드에서 알 수 있듯이 클래스 외부에서
private static method
라는 sayHi
에 액세스하려고 하면 TypeScript 컴파일러가 Property 'sayHi' is private and only accessible within class 'Person'.
라는 오류를 표시합니다. 이는 우리가 원하는 것입니다.TypeScript에서만 해당 클래스 및 하위 클래스 내에서 정적 메서드에 액세스할 수 있도록 성공적으로 만들었습니다. 예이 🥳!
codesandbox에 있는 위의 코드를 참조하십시오.
그게 다야 😃!
이 정보가 유용하다고 생각되면 자유롭게 공유하세요 😃.
Reference
이 문제에 관하여(TypeScript의 해당 클래스에서만 정적 메서드에 액세스할 수 있도록 하는 방법은 무엇입니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/melvin2016/how-to-make-a-static-method-accessible-only-in-its-class-in-typescript-1b25텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)