분류 전체보기

👶 TypeScript

서브 타입과 슈퍼 타입

서브 타입 두 개의 타입 A와 B가 있고 B가 A의 서브 타입이면 A가 필요한 곳에는 어디든 B를 안전하게 사용할 수 있습니다. TypeScript에 기본적으로 있는 서브 타입의 몇 가지 예는 아래와 같습니다. 배열은 객체의 서브 타입입니다. 튜플은 배열의 서브 타입입니다. 모든 것은 any의 서브 타입입니다. never는 모든 것의 서브 타입입니다. Animal을 상속받는 Dog 클래스가 있다면 Dog는 Animal의 서브 타입입니다. 서브 타입의 정의를 여기에 적용하면 다음과 같이 설명할 수 있습니다. 객체를 사용해야 하는 곳에 배열도 사용할 수 있습니다. 배열을 사용해야 하는 곳에 튜플도 사용할 수 있습니다. any를 사용해야 하는 곳에 객체도 사용할 수 있습니다. 어디에나 never를 사용할 수 ..

👶 TypeScript

디자인 패턴 - 빌더 패턴(builder pattern)

빌더 패턴(builder pattern) 빌더 패턴(builder pattern)으로 객체의 생성과 객체 구현 방식을 분리할 수 있습니다. 제이쿼리(JQuery)나 ES6의 Map, Set 등의 자료구조를 사용해 봤다면 빌더 패턴에 친숙할 것입니다. 빌더 패턴은 아래처럼 구성됩니다. new RequestBuilder() .setURL('/users') .setMethod('get') .setData({ firstName: 'Cozy'}) .send() RequestBuilder를 구현하는 방법은 간단합니다. 우선 클래스 뼈대를 정의합니다. class RequestBuilder{} 첫 번째로 .setURL 메서드를 추가합니다. class RequestBuilder{ private url: string | ..

👶 TypeScript

디자인 패턴 - 팩토리 패턴(factory pattern)

팩토리 패턴(factory pattern) 팩토리 패턴(factory pattern)은 어떤 객체를 만들지를 전적으로 팩토리에 위임합니다. 예시를 위해 빵(bread) 팩토리를 만들어보겠습니다. 먼저 Bread라는 타입을 정의하고 세 종류의 빵을 구현합니다. type Bread = { kind: string } class FranceBread implements Bread { kind = 'Baguette' } class IndeaBread implements Bread { kind = 'Flatbread' } class DanishBread implements Bread { kind = 'Ryebread' } 이 예에선 type을 사용했는데, type 대신 인터페이스를 사용해도 됩니다:) 이제 빵 팩토..

👶 TypeScript

final 클래스 흉내 내기

final 클래스 흉내 내기 TypeScript는 클래스나 메서드에 final 키워드를 지원하지 않지만 클래스에서 final의 효과를 흉내내기 어렵지 않습니다. final 키워드는 클래스나 메서드를 확장하거나 오버라이드할 수 없게 만드는 기능입니다. TypeScript에선 비공개 생성자(private constructor)로 final 클래스를 흉내 낼 수 있습니다. class MessageQueue { private constructor(private message: string[]) {} } 생성자를 private으로 선언하면 new로 인스턴스를 생성하거나 클래스를 확장할 수 없게 됩니다. class MessageQueue { private constructor(private message: stri..

개발자 린다씨
'분류 전체보기' 카테고리의 글 목록 (19 Page)