class 프로퍼티 선언방법 두가지
방식 1:
class Book {
constructor(
public title: string,
public author: string,
public publishedDate: Date
) {}
}
방식 2:
class Book {
public title: string;
public author: string;
public publishedDate: Date;
constructor(
title: string = '타이틀',
author: string = '저자',
publishedDate: Date = new Date()
) {
this.title = title;
this.author = author;
this.publishedDate = publishedDate;
}
}
차이점:
- 기본 값 제공:
- 방식 2는 생성자 매개변수에 기본 값을 제공하여, 인스턴스를 생성할 때 모든 매개변수를 전달하지 않아도 기본 값이 설정됩니다. 방식 1은 기본 값을 제공하지 않습니다.
- 코드 간결성:
- 방식 1은 TypeScript의 매개변수 프로퍼티 선언을 사용하여 코드가 더 간결하고 직관적입니다. 생성자에서 매개변수를 바로 클래스 프로퍼티로 선언하고 초기화합니다.
- 방식 2는 기본 값을 설정할 수 있는 장점이 있지만, 프로퍼티를 생성자 안에서 명시적으로 할당해야 하므로 코드가 더 길어집니다.
어느 쪽이 좋은가?
- 기본 값이 필요한 경우: 방식 2가 더 유용합니다. 생성자에서 기본 값을 제공함으로써 인스턴스 생성 시 매개변수를 생략할 수 있어 유연합니다.
- 코드 간결성 및 명확성: 기본 값이 필요하지 않다면 방식 1이 더 좋습니다. 코드가 더 간결하고 읽기 쉬워 유지보수에 유리합니다.
따라서 상황에 따라 적절한 방식을 선택하는 것이 좋습니다. 기본 값이 필요한 경우 방식 2를 사용하고, 그렇지 않다면 방식 1을 사용하는 것이 좋습니다.
'javascript' 카테고리의 다른 글
[240710 TIL] 빈객체 확인 (0) | 2024.07.10 |
---|---|
[240707 TIL] 에러 던지기 (0) | 2024.07.07 |
[240626 TIL] createObjectUrl (0) | 2024.06.26 |
[240527 TIL] 날짜 유효성 검사 (0) | 2024.05.27 |
[240513 TIL] 불변성 원칙과 순수 함수 (0) | 2024.05.13 |