타입스크립트와 Class 타입
타입스크립트에서는 클래스의 프로퍼티에도 타입을 지정할 수 있습니다.
// 클래스의 타입 선언
class MyClass {
name: string = "";
age: number = 0;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
}
public, private, protected, static
타입스크립트는 자바(Java) 처럼 접근 제한자를 사용할 수 있습니다.
그런데, 타입스크립트의 접근 제한자는 자바의 접근제한자와 완전히 똑같지는 않은 것 같습니다.
그냥 자바스크립트는 접근제한자가 없으니, 변수의 사용 범위를 조금 더 제한해주는, const 의 상위 호환 버전 같은 느낌인거 같습니다.
타입스크립트의 접근제한자들은 아래와 같이 사용할 수 있습니다.
// public, private, static, protected
// public : 클래스 속성의 default 상태, 어디서든 수정 가능
// ex) 클래스 내외부, 클래스 인스턴스 등
// public의 진가는 constructor와 함께!
class PublicClass1 {
constructor(public age: number) {
// PublicClass1의 프로퍼티 age를 추가했다는 뜻
}
}
// private : 클래스 선언 당시에만 사용 가능
class PrivateClass2 {
private name: string = "";
}
// protected : 클래스 선언 당시, 클래스 내부, 자식 클래스 등에서 참조 가능
class Parent {
protected familyName: string;
}
class Child extends Parent {
constructor(x: string) {
super();
this.familyName = "hey"; // ok
}
}
// static, 바로 접근 기능
class StaticClass {
static someValue: string = "";
}
제네릭(Generic)
타입스크립트도 동적 타입 할당을 위한 제네릭을 제공합니다.
타입스크립트의 제네릭도 타입으로 사용할 수 있으며, 타입의 결정은 변수를 선언하고 타입을 지정할 때에 정합니다.
제네릭의 사용은 아래와 같이 사용할 수 있습니다.
// 클래스와 제네릭
class NewClass<T> {
name: T;
constructor(name: T) {
this.name = name;
}
}
let myClass1: NewClass<number> = new NewClass(13);
'프론트엔드(Front-End) > TypeScript' 카테고리의 다른 글
[TypeScript] 타입스크립트의 타입 선언 : function (0) | 2023.03.14 |
---|---|
[TypeScript] es6 이전 자바스크립트의 클래스 선언과 prototype (0) | 2023.03.13 |
[TypeScript] 타입스크립트의 타입 선언 : Object (1) | 2023.03.09 |
[TypeScript] 타입스크립트의 타입 선언 : Array 와 Tuple (0) | 2023.03.08 |
[TypeScript] 타입스크립트와 타입 선언 (1) | 2023.03.07 |