TIL

타입 정리

효ㄷi 2024. 7. 8. 21:06

타입 정리

 

원시 데이터 타입 (Primitive Types)

원시 데이터 타입은 가장 기본적인 데이터 종류다. 

1. 숫자 (number)
let product_id: number = 124981;

 

2. 문자열 (string)

let product_name: string = 'VR 글래스';

 

3. 불 (boolean)

let is_waterproofing: boolean = false;

배열 타입 (Array Types)

TypeScript에서 배열 타입을 명시적으로 지정하면, 특정 타입의 값만 배열에 담을 수 있다.

1. 문자열 배열 (string[])
let members: string[] = ['이권', '감장겸', '장도일'];


2. 숫자 배열 (number[])
let nums: number[] = [100, 101, 102];


3. 불리언 배열 (boolean[])
let boos: boolean[] = [true, false, true];


4. any 타입 배열 (any[])
let anys: any[] = [100, 'ㄴ', true];


5. 유니온 타입 배열 (number | string)[]
let selects: (number | string)[] = [102, 'ㅇ'];

튜플 타입 (Tuple Types)

튜플이란?

튜플은 TypeScript에서 사용할 수 있는 특수한 배열 타입으로, 각 요소의 타입과 순서를 미리 정한다.

책 정보 튜플 (제목, 가격)
let book_name_price: [string, number] = ['카밍 시그널', 13320];

학생 정보 튜플 (이름, 나이, 학년)
let student_info: [string, number, string] = ['홍길동', 14, '중학교 2학년'];

상품 정보 튜플 (상품명, 가격, 재고 여부)
let product_info: [string, number, boolean] = ['컴퓨터', 1500000, true];

enum 타입 (Enumerated Types)

enum이란?

enum은 숫자 대신 친숙한 이름으로 값을 정의하는 열거형 데이터 타입이다.

기본 값 할당
enum Team {
Manager, // 0 
Planner, // 1 
Developer, // 2 
Designer, // 3 } 

let sarha: number = Team.Designer; // 3


명시적 값 할당
enum Team { 
Manager = 101, 
Planner = 208, 
Developer = 302, 
Designer, // 303 } 

let yamoo9: number = Team.Manager; // 101 
let sarha: number = Team.Designer; // 303

역방향 매핑
let role: string = Team[302]; // 'Developer'

 
 

함수 매개변수 타입

함수 매개변수에 타입을 지정할 수 있다.

 

함수 매개변수 타입
function greet(name: string): void {}

유니온 타입
function printId(id: number | string): void {}
여러 타입을 허용할 수 있는 타입으로, | 기호를 사용한다.

함수 리턴 타입
function add(a: number, b: number): number { return a + b; }
함수의 리턴 타입을 명시적으로 지정할 수 있으며, 리턴 값이 없는 경우 void를 사용한다.

함수 표현식
let multiply: (a: number, b: number) => number = (a, b) => a * b;
변수에 함수를 할당하고, 함수의 매개변수와 리턴 타입을 명시적으로 지정한다.

object 타입

TypeScript에서는 객체의 각 속성에 타입을 명시적으로 지정할 수 있다. 이를 통해 객체의 속성이 예상한 타입과 일치하는지 확인할 수 있다.

객체 타입 선언객체 Dom의 version은 문자열, el과 css는 함수로 지정합니다.
typescript
코드 복사
let Dom: { version: string, el: () => void, css: () => void };
객체에 초기 값 설정객체 Dom에 초기 값을 설정합니다.
typescript
코드 복사
Dom = { version: '0.0.1', el() {}, css() {} };
객체 타입과 초기 값 동시 설정객체 Dom의 타입과 초기 값을 동시에 설정합니다.
typescript
코드 복사
let Dom: { version: string, el: () => void, css: () => void } = { version: '0.0.1', el() {}, css() {} };
동적으로 속성 추가 가능하도록 설정동적으로 속성을 추가할 수 있도록 [propName: string]: any를 사용하여 타입을 설정합니다.
typescript
코드 복사
let Dom: { version: string, el: () => void, css: () => void, [propName: string]: any };
동적으로 속성 추가동적으로 each 속성을 추가합니다.
typescript
코드 복사
Dom.each = function() {};

이렇게 하면 TypeScript에서 객체의 속성을 명시적으로 지정하여 코드의 안정성을 높일 수 있다. 이를 통해 예기치 않은 타입 오류를 사전에 방지할 수 있다.