[TypeScript 공식문서] 1. The Basics

2025. 3. 20. 19:03·Web/TypeScript

1. TypeScript란?

  • JavaScript의 모든 값은 다양한 동작을 내장하고 있으며, 타입을 통해 이를 예측할 수 있음.
  • JavaScript는 동적 타입 언어로, 코드 실행 전에는 타입 오류를 알기 어려움.
  • TypeScript는 정적 타입 검사를 통해 런타임 오류를 사전에 방지할 수 있음.

 

정적 타입 시스템 사용 → 코드가 실행되기 전에 코드에 대해 예측가능

 

2. 정적 타입 검사

  • TypeScript는 코드 실행 전에 타입을 검사하여 오류를 미리 감지.
  • 예제:
  • const message = "Hello World!"; message(); // TypeScript 오류: 문자열을 함수처럼 호출할 수 없음.

3. TypeScript의 장점

  • 예외 방지: 실행되지 않아야 할 코드 실행을 사전에 차단.
  • 버그 방지: 오타 및 잘못된 논리 오류 감지.
  • 도구 지원: 코드 자동 완성, 리팩토링 지원.

4. TypeScript 컴파일러(tsc)

  • TypeScript 코드를 JavaScript로 변환.
  • 설치 및 실행:
  • npm install -g typescript tsc hello.ts
  • TypeScript는 타입 정보를 제거한 순수 JavaScript 파일을 생성함.

5. 타입 지정

  • 함수의 매개변수와 변수에 명시적으로 타입을 지정 가능.
function greet(person: string, date: Date) {
  console.log(`Hello ${person}, today is ${date.toDateString()}!`);
}
 
greet("Maddison", Date());
function greet(person: string, date: Date) {
  console.log(`Hello ${person}, today is ${date.toDateString()}!`);
}
greet("Maddison", new Date());
  • 위는 에러, 아래는 에러 안남. Because, JavaScript 에서 Date()를 호출하면 string을 반환하기 때문…
  • new Date() 를 사용해서 Date 타입을 생성해야 비로소 처음 기대했던 결과를 반환 받을 수 있다.
let msg = "hello there!";
  • TypeScript는 자동으로 타입을 추론할 수도 있음.

TypeScript 에서 tsc로 컴파일하면 type이 사라짐

  • TypeScript는 타입 정보를 제거한 JavaScript 코드로 변환됨.
  • 이는 브라우저와 Node.js에서 실행 가능하도록 하기 위함.

6. 엄격 모드(strict mode)

  • -strict 플래그를 활성화하면 더 엄격한 타입 검사가 가능.
  • noImplicitAny: 암묵적 any 타입을 금지.
  • strictNullChecks: null과 undefined의 사용을 제한.

7. 다운레벨링(Downleveling)

  • TypeScript는 최신 JavaScript 기능을 지원하지만, 모든 환경에서 실행할 수 있도록 구버전 JavaScript(ES3, ES5) 코드로 변환하는 기능을 제공함. 이를 다운레벨링(Downleveling)이라고 함.

✅ TypeScript는 기본적으로 ES5로 컴파일됨.

✅ --target 옵션을 설정하면 ES6(ES2015) 이상의 문법을 유지 가능.

✅ 브라우저 호환성 문제를 해결하기 위해 다운레벨링이 필요함.

✅ tsconfig.json에서 설정하면 프로젝트 전체적으로 적용 가능.

8. TypeScript를 활용한 개발

  • 타입을 활용하여 안전한 코드를 작성할 수 있음.
  • 자동 완성 및 코드 분석 기능이 뛰어남.
  • 기존 JavaScript 프로젝트에서도 점진적으로 도입 가능.

'Web > TypeScript' 카테고리의 다른 글

[TypeScript 공식문서] 3. Narrowing  (0) 2025.03.25
[TypeScript 공식문서] 2. Everyday Types(2)  (1) 2025.03.22
[TypeScript 공식문서] 2. Everyday Types(1)  (1) 2025.03.22
'Web/TypeScript' 카테고리의 다른 글
  • [TypeScript 공식문서] 3. Narrowing
  • [TypeScript 공식문서] 2. Everyday Types(2)
  • [TypeScript 공식문서] 2. Everyday Types(1)
bernie
bernie
공부한 내용을 업로드합니다.
  • bernie
    Daegi Bernie Yeo
    bernie
  • 전체
    오늘
    어제
    • 분류 전체보기 (11)
      • Web (9)
        • JavaScript (4)
        • TypeScript (4)
      • Algorithm (2)
      • CS (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    미로탐색
    리액트
    react
    객체리터럴
    onKeydown
    Event
    js
    백준
    typescript
    2178
    괄호 표기법
    BFS
    CSR
    input
    javascript
    c++
    mordan cpp
    속성 접근자
    SSR
    자바스크립트
    cpp
    딥다이브
    객체
    점 표기법
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
bernie
[TypeScript 공식문서] 1. The Basics
상단으로

티스토리툴바