[TypeScript] 개요

2024. 11. 7. 20:02·TypeScript
728x90
728x90

TypeScript

  - JavaScript에 Type을 부여한 언어

  - 목표 : JavaScript에 정적 타입을 추가하여, 더 안정적이고 유지보수가 용이한 코드를 작성하도록 돕는 것

  - 변수, 함수의 매개변수/반환값에 타입을 지정할 수 있음

     → 컴파일 시 타입 오류를 미리 확인할 수 있음

문자열로 정의되어 있는데 메서드처럼 호출할 때 컴파일 에러

 

  - .ts 확장자를 가진 파일로 작성됨

     → 컴파일 시 JavaScript로 변환되어 브라우저나 Node.js 환경에서 실행할 수 있음

 

 


변수 선언 및 초기화하기

# 타입 명시하기

  - Type Annotation (타입 주석)이라고 부름

let a: any // 모든 타입 가능
let b: number | undefined // number 타입 또는 undefined 타입 가능
let c: "open" | "closed" | "minimized" // 해당하는 문자열만 가능

let age: number = 25;  // number 타입
let name: string = "Alice";  // string 타입

# 타입을 명시하지 않아도 타입을 추론할 수 있음

let age = 25;  // number 타입
let name = "Alice";  // string 타입

 

함수의 매개변수와 반환값에 타입 지정하기

  - ? : Optional Parameter → 선택적으로 사용하고 싶은 파라미터의 오른쪽에 붙이기

// name은 string 타입, 필수값
// age는 number 타입, 선택값이며, 전달받지 않으면 undefined
function greet(name: string, age?: number): string {
    return `Hello, ${name}!`;
}

// age에 기본값 25 지정
function greet(name: string, age: number = 25): string {
    return `Hello, ${name}!`;
}

// 객체 타입
function printCoord(pt: { x: number; y: number }) {
    ...
}

// Promise 반환 함수인 경우
async function getFavoriteNumber(): Promise<number> {
  return 26;
}

 

익명 함수

  - 매개변수의 타입을 추론할 수 있는 경우라면 타입을 명시하지 않아도 됨

     → 'Contextual Typing' : 함수가 발생한 문맥에 따라 함수의 타입이 결정됨

const names = ["Alice", "Bob", "Eve"];
 
// string 타입이라고 추론이 가능하기 때문에 타입을 명시하지 않아도 됨
names.forEach(function (s) {
  console.log(s.toUpperCase());
});

 

 

 

 

320x100
반응형
저작자표시 비영리 변경금지 (새창열림)

'TypeScript' 카테고리의 다른 글

[TypeScript] 타입 추론 (Type Inference) & 타입 단언 (Type Assertion)  (0) 2024.11.12
[TypeScript] 타입 별칭 (Type Alias)  (0) 2024.11.10
[TypeScript] 유니언 타입 & 인터섹션 타입  (0) 2024.11.09
[TypeScript] 인터페이스 (Interface)  (0) 2024.11.08
[TypeScript] 기본 타입  (4) 2024.11.07
'TypeScript' 카테고리의 다른 글
  • [TypeScript] 타입 별칭 (Type Alias)
  • [TypeScript] 유니언 타입 & 인터섹션 타입
  • [TypeScript] 인터페이스 (Interface)
  • [TypeScript] 기본 타입
스응
스응
    반응형
    250x250
  • 스응
    이서영의 개발 블로그
    스응
  • 전체
    오늘
    어제
  • 글쓰기 관리
    • 분류 전체보기 (385)
      • Java (134)
        • Base (54)
        • Spring Boot (37)
        • JSP (16)
        • Swing (GUI) (20)
        • Design Pattern (7)
      • C# (13)
      • PHP (18)
      • SQL (27)
      • Vue.js (9)
      • Tailwind CSS (4)
      • TypeScript (7)
      • HTML & CSS (27)
      • JavaScript (26)
      • jQuery (10)
      • Android (3)
      • - - - - - - - - - - - - - - (0)
      • Hotkeys (5)
      • CS (30)
      • IT Notes (13)
      • Error Notes (17)
      • Team Project (24)
        • Airlines Web Project (12)
        • University Web Project (6)
        • Strikers 1945 GUI Project (6)
      • My Project (18)
        • Library Web Project (8)
        • Pet Shopping Mall GUI Project (10)
      • etc. (0)
  • 블로그 메뉴

    • Home
    • Write
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    jsp
    개발일지
    SpringBoot
    SEO
    tailwindcss
    오블완
    SWAGGER
    php
    vuejs
    http
    git
    jQuery
    Codeigniter
    C#
    js
    typeScript
    티스토리챌린지
    면접
    java
    Hotkeys
    Android
    cs
    Swing
    CSS
    errorNote
    HTML
    zapier
    SQL
    Wordpress
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
스응
[TypeScript] 개요
상단으로

티스토리툴바