Enums: 특정 값들을 모아둔 자료형 숫자형 이넘(Numeric enums) enum Direction { Up = 1, Down, // 2 Left, // 3 Right, // 4 } 초기값부터 +1씩 증가 enum Direction { Up, // 0 Down, // 1 Left, // 2 Right, // 3 } 지정하지 않는 경우 0부터 1씩 증가 - 사용 예시 enum UserResponse { No = 0, Yes = 1, } function respond(recipient: string, message: UserResponse): void { // ... } respond("Princess Caroline", UserResponse.Yes); 문자형 이넘(String enums) enum ..
매개변수에 타입 지정하기 let person = { name: 'Capt', age: 28 }; function logAge(obj: { age: number }) { console.log(obj.age); // 28 } logAge(person); 인터페이스에 타입 지정하기 interface personAge { age: number; } function logAge(obj: personAge) { console.log(obj.age); } let person = { name: 'Capt', age: 28 }; logAge(person); 인터페이스 interface 옵션 속성 ? 필수로 사용하지 않아도 되는 값을 표시 속성을 선택적으로 적용할 수 있음 interface 인터페이스_이름 { 속성?: 타..
함수 타입 기본적인 함수 타입 선언 매개변수와 반환 값에 타입 설정 // 숫자 a, b를 받아 숫자를 리턴하는 함수 function sum(a: number, b: number): number { return a + b } 반환 값이 없는 경우 void function sum(a: number, b: number): void { console.log(a + b) } 타입이 정의된 인자만큼 전달해야 함 - 더 많이 전달해도, 더 적게 전달해도 타입 에러 발생 정의된 매개변수보다 적게 전달하고 싶은 경우 '?'를 이용 function sum(a: number, b?: number): number { return a } REST 문법 function sum(a: number, ...nums: number[])..
기본 타입 정의 문자열 let str: string = 'hello'; 숫자 let num: number = 10; Boolean let isLoggedIn: boolean: false; Array const arr: Array = [] const arr2: [] = [] // 숫자만 가지는 배열 const items: Array = [1, 2, 3]; const items2: number[] = [1, 2, 3] // 문자열만 가지는 배열 const heroes: Array = ['captain', 'thor', 'hulk']; const heroes2: string[] = ['captain', 'thor', 'hulk']; Tuple 배열과 비슷하지만 값을 변경할 수 없는 길이가 정해진 자료형 정의되..
제네릭 타입(Generic) : 클래스 외부에서 타입을 정하는 것 import { FC } from 'react' interface DogsProps { status: string; message: string[]; // 문자열이 담긴 배열 } function GetDogs: FC ({ status, message }) { ... } select event interface SelectProps { handleOnChange: (event: ChangeEvent) => void; ... } 함수 (매개변수 타입) => void(리턴이 없는 경우) (매개변수 타입) => 반환값의 타입(리턴이 있는 경우) 객체 interface ObjProps { objVal: {} // 이렇게 지정해도 오류 나지 않음 o..
타입스크립트 Typescript 자바스크립트에 타입을 부여한 언어. 브라우저에서 실행하기 위해 컴파일(compile. 파일 변환) 해주어야 함 타입스크립트를 사용하는 이유 에러를 사전에 방지할 수 있음 정의되지 않은 값을 사용하는 경우 에러 발생 코드 가이드 및 자동 완성 vscode 사용 시 해당하는 타입에 대한 메서드를 바로 볼 수 있음 Jsdoc 기본 문법을 이용한 타입 정의(in JS) // @ts-check // 타입 스크립트 에러 체크 /** * @typedef {object} Address * @property {string} street * @property {string} city */ /** * @typedef {object} User * @property {string} name * ..