Language/Typescript
-
Typescript - Assertion FunctionLanguage/Typescript 2023. 5. 24. 22:59
아래 모든 예제 코드들은 Typescript Playground 에서 작성했습니다. 유저가 존재하는지에 대한 여부를 확인하는 로직이 아래와 같다고 가정해봅시다. interface User { readonly id: number; readonly name: string; readonly email: string; } declare const user: User | null; function validateNotNullUser(user: User | null) { if (!user) { throw new Error('유저가 존재하지 않습니다'); } } validateNotNullUser(user); user; // User | null validateNotNullUser 함수는 유저가 존재하지 않을 경우 ..
-
Typescript - Class Private 필드는 진짜로 읽을 수 없을까?Language/Typescript 2022. 12. 28. 23:26
아래 private 으로 선언된 필드들을 가지고 있는 클래스가 있다. class Foo { private num: number; private str: string; constructor(num: number, str: string) { this.num = num; this.str = str; } } const foo = new Foo(1, 'str'); 만약 num 이나 str 필드를 읽으려고 한다면 에러가 발생할 것이다. // TS2341: Property 'num' is private and only accessible within class 'Foo'. foo.num; 에러 메시지를 확인해보면 num 속성은 private 이고, 클래스 내부에서만 접근이 가능하다는 것이다. 그렇다면 private ..
-
Typescript 로 알아보는 SOLID(객체지향 설계)Language/Typescript 2022. 4. 12. 00:29
Typescript 로 알아보는 SOLID(객체지향 설계) 주로 Express 를 통해 서버를 개발하다가, 최근 NestJS 를 사용하고 공부하다 보니 객체지향 설계에 대해 더욱 궁금하고 깊게 알고 싶어져 정리하게 되었습니다. SOLID 디자인 원칙은 더 나은, 더 깔끔한 코드를 작성하는 방법으로 Robert C. Martin 이라는 소프트웨어 엔지니어가 발명했습니다. SOLID 원칙을 Typescript 를 통해 알아볼려고 합니다. 1. Single Responsibility Principle(SRP) - 단일 책임 원칙 "어떤 클래스를 변경해야하는 이유는 단 하나뿐이여야 한다" 클래스는 하나의 목적과 책임을 가지고 있어야하기에, 변경하기 위한 이유도 하나이어야 한다. 이 원칙을 따르게 된다면 코드를 ..
-
[Typescript] - 배열 내에서 undefined 제거하기Language/Typescript 2022. 3. 28. 01:37
const arr: (string | undefined)[] = ['test1', 'test2', undefined, 'test3', 'test4']; 위와 같은 배열에서 undefined 를 제거하기 위해서는 filter() 메서드를 사용하는 방법이 있습니다. const arr: (string | undefined)[] = ['test1', 'test2', undefined, 'test3', 'test4']; const filter_undefined_arr = arr.filter((data) => data !== undefined); // ['test1', 'test2', 'test3', 'test4'] 결과는 undefined type 이 제거된 배열이 return 되는 것을 확인할 수 있습니다. 하..
-
[Typescript] - Type Alias 와 InterfaceLanguage/Typescript 2021. 12. 12. 19:16
Typescript Interface 와 Type 차이점 타입스크립트를 통해 개발하다보면 Type Alias 와 Interface 중 어는 것을 사용해서 Type 을 정의해야할까 라는 문제가 생깁니다. 공통점 객체 타입에 대한 이름 지어주기 Interface interface UserInterface { name: string age: number } const user: UserInterface = { name: 'choi', age: 100 } Type Alias type UserTypeAlias = { name: string, age: number } const user: UserTypeAlias = { name : 'choi', age: 100 } 차이점 1. 확장 하는 법 Type Alias 와..
-
TypeScript 타입 정리Language/Typescript 2021. 9. 23. 22:37
Typescript Type 타입 스크립트는 일반 변수, 매개 변수, 객체 속성 등에 타입을 지정할 수 있다. 형식 function Example(a: Type, b: Type): RuturnType { return a + b; } let variable: Type = Example(1, 2); - 예제 ```typescript function add (a: number, b: number): number { return a + b; } const sum_num: number = add(1, 2); const err_sun_num: String = add(1, 2); // ERROR Type 선언 Boolean True/False 값을 나타내는 타입이다. let isDone: boolean = false..