Typescript 및 객체 지향 프로그래밍 (1)

2024. 6. 24. 21:00TypeScript

728x90
반응형

Typescript 사용 시 장단점

 

1. 시간이 오래 걸릴 수 있음

동적(런타임) 자바스크립트와 달리, Typescript는 정적(컴파일) 언어이므로 컴파일 시간이 추가됩니다.

2. 가독성 향상

변수와 인자에 타입을 명시함으로써 코드의 가독성이 높아집니다.

3. 테스트 코드 감소

안정성이 높아 자바스크립트에 비해 테스트 코드 작성이 줄어듭니다.

4. 디버깅의 어려움

디버깅의 어려움: 개발자의 실수로 인한 오류를 찾기 어렵습니다.

 

컴파일이란?
• 컴파일은 코드를 실행하기 전에 컴파일러가 문법적으로 오류를 잡아내는 과정입니다. 코드 최적화와 사전 오류 방지를 도와줍니다.

 

기본 타입

 

1. boolean

참/거짓을 표현.

function isValidPassword(password: string): boolean {
  return password.length >= 8;
}

 

2. number

숫자 타입.

function calculateArea(radius: number): number {
  return Math.PI * radius * radius;
}

 

3. string

문자열 타입.

function greet(name: string): string {
  return `안녕, ${name}!`;
}

 

4. 배열

같은 타입의 요소를 가진 배열.

function calculateSum(numbers: number[]): number {
  let sum: number = 0;
  for (let i = 0; i < numbers.length; i++) {
    sum += numbers[i];
  }
  return sum;
}

 

 

5. 튜플(tuple)

서로 다른 타입의 요소를 순서대로 가지는 배열.

const person: [string, number, boolean] = ['Spartan', 25, false];

 

 

6. enum

관련된 상수 값을 그룹화.

enum UserRole {
  ADMIN = "ADMIN",
  EDITOR = "EDITOR",
  USER = "USER",
}

 

 

7. letconst

let: 재할당 가능한 변수.

const: 재할당 불가능한 상수.

readonly: 객체 속성을 불변으로 만듦.

class Person {
  readonly name: string;
  readonly age: number;

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

 

8. any

모든 타입의 슈퍼 타입.

let anything: any;
anything = 5;
anything = 'Hello';

 

9. unknown

안전한 방식으로 동작하는 any 타입.

다른 타입으로 할당하려면 명시적 타입 확인 필요.

 

10. union

여러 타입 중 하나를 가질 수 있는 변수.

type StringOrNumber = string | number;

 

11. object literal

키 + 값의 쌍으로 구성된 객체.

const obj = {
  a: [1, 2, 3],
  b: 'b',
  c: 4
}

 

 

유틸리티 타입

 

1. Partial

타입 T의 모든 속성을 선택적으로 만듦.

interface Person {
  name: string;
  age: number;
}

const updatePerson = (person: Person, fields: Partial<Person>): Person => {
  return { ...person, ...fields };
};

 

2. Required

타입 T의 모든 속성을 필수로 만듦.

interface Person {
  name: string;
  age: number;
  address?: string;
}

 

3. Readonly

타입 T의 모든 속성을 읽기 전용으로 만듦.

interface DatabaseConfig {
  host: string;
  readonly port: number;
}

const mutableConfig: DatabaseConfig = {
  host: "localhost",
  port: 3306,
};

 

728x90
반응형

'TypeScript' 카테고리의 다른 글

[TypeScript] TypeError: Unknown file extension ".ts"  (0) 2024.06.25
TypeScript 설정  (0) 2023.10.30
TypeScript 프로젝트 초기세팅  (0) 2023.10.27
TypeScript 데이터타입  (0) 2023.10.27