클래스 필드 또는 메서드를 공용으로 만들고 TypeScript의 클래스 인스턴스에서 액세스하는 방법은 무엇입니까?

10716 단어 typescript
Originally posted here!

기본적으로 모든 클래스 필드 및 메서드는 가시성public을 가지며 클래스 인스턴스에서 액세스할 수 있습니다. 가독성을 위해 필드 이름이나 메서드 앞에 public 키워드를 명시적으로 추가할 수도 있습니다.

TL;DR




/*
  Make class fields or methods public and access
  from a class instance in TypeScript 🚀
*/

// a simple class
class Car {
  public name: string; // <- this field is public
  // 👇🏽 this field is also public but we have
  // not written the `public` keyowrd
  // since it is by default
  yearMade: number;

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

  // 👇🏽 this method is public
  public startEngine() {
    console.log("Engine started..");
  }
}

// create an instance of the `Car` class
const lexus = new Car("Lexus", 2022);

// we can access the fields and methods since
// every fields and methods by default have `public` visibility
console.log(lexus.name); // Lexus ✅
console.log(lexus.yearMade); // 2022 ✅
lexus.startEngine(); // Engine started.. ✅


예를 들어, Carname라는 2개의 속성과 yearMade라는 메서드가 있는 startEngine라는 클래스가 있다고 가정해 보겠습니다.

// a simple class
class Car {
  name: string;
  yearMade: number;

  startEngine() {
    console.log("Engine started..");
  }
}

Car 클래스에서 기본적으로 위의 모든 필드와 메서드는 클래스 인스턴스를 사용하여 액세스할 수 있습니다.

이를 테스트하기 위해 Car 클래스의 인스턴스를 만들고 메서드와 필드에 액세스해 봅시다.

다음과 같이 할 수 있습니다.

// a simple class
class Car {
  name: string;
  yearMade: number;

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

  startEngine() {
    console.log("Engine started..");
  }
}

// create an instance of the `Car` class
const lexus = new Car("Lexus", 2022);

// we can access the fields and methods since
// every fields and methods by default have `public` visibility
console.log(lexus.name); // Lexus ✅
console.log(lexus.yearMade); // 2022 ✅
lexus.startEngine(); // Engine started.. ✅


이 외에도 필드 또는 메소드 이름을 쓰기 전에 public 키워드를 사용하여 필드 또는 메소드를 공용으로 명시적으로 정의할 수 있습니다. public 키워드를 작성할 필요는 없지만 일부는 가독성 때문에 선호할 수 있습니다.

다음과 같이 할 수 있습니다.

// a simple class
class Car {
  public name: string; // <- this field is public
  yearMade: number; // <- this field is also public but we have not written it

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

  // 👇🏽 this method is public
  public startEngine() {
    console.log("Engine started..");
  }
}

// create an instance of the `Car` class
const lexus = new Car("Lexus", 2022);

// we can access the fields and methods since
// every fields and methods by default have `public` visibility
console.log(lexus.name); // Lexus ✅
console.log(lexus.yearMade); // 2022 ✅
lexus.startEngine(); // Engine started.. ✅


우리는 성공적으로 클래스 필드와 메서드를 공개했으며 클래스 인스턴스를 사용하여 액세스할 수 있습니다. 예이 🥳!

codesandbox에 있는 위의 코드를 참조하십시오.

그게 다야 😃!

이 정보가 유용하다고 생각되면 자유롭게 공유하세요 😃.

좋은 웹페이지 즐겨찾기