카일_

Programming/TypeScript

Programming/TypeScript

[TS] 고급타입(Advanced Types) - Mapped Types

매핑 타입(Mapped Types) 매핑 타입(Mapped Types)은 기존 타입을 변환하여 새로운 타입을 만들 수 있는 유틸리티 타입 중 하나다. 매핑 타입을 사용하면 기존 타입의 속성 이름, 타입 등을 변경하여 새로운 타입을 만들 수 있다. 매핑 타입의 구조는 아래와 같다. { [P in K]: T } 위 구조에서 P는 속성 이름의 타입, K는 P에 포함될 속성 이름의 타입을 의미하며, T는 속성의 타입을 나타낸다. interface Person { name: string; age: number; location: string; } 위 Person 인터페이스를 매핑 타입을 사용하여 다음과 같이 변환할 수 있다. type ReadonlyPerson = { readonly [P in keyof Pers..

Programming/TypeScript

[TS] 고급타입(Advanced Types) - 3

Recursive Types(재귀 타입) Recursive Types(재귀 타입)는 자기 참조하는 타입을 정의할 수 있도록 해준다다. 이는 트리, 그래프 등과 같이 반복적인 형태의 데이터 구조를 다룰 때 유용하다. 예를 들어, 다음과 같은 트리 구조를 타입으로 표현할 수 있다. type TreeNode = { value: number; left?: TreeNode; right?: TreeNode; } 위 타입 정의에서 TreeNode은 left와 right 프로퍼티가 자기 자신을 참조하는 타입이다. 이는 트리가 자식 노드를 가질 수 있기 때문에 가능하다. Recursive Types은 무한히 중첩될 수 있기 때문에, 끝없이 반복되는 형태의 데이터 구조를 다루기에 적합하다. 하지만 이를 사용할 때에는 주의..

Programming/TypeScript

[TS] 고급타입(Advanced Types) - 2

Literal Types(리터럴 타입) Literal Types(리터럴 타입)은 특정한 값 자체를 타입으로 사용하는 것을 말한다. 타입스크립트에서는 문자열, 숫자, 불리언 값 등의 Literal Types을 지원하며, 이를 통해 값을 정확하게 지정하여 유효성 검사나 코드의 가독성을 높일 수 있다. 예를 들어, 아래와 같이 문자열 'hello'를 타입으로 지정할 수 있다. let greeting: 'hello'; greeting = 'hello'; // OK greeting = 'hi'; // 에러: Type '"hi"' is not assignable to type '"hello"' 위 예시에서 greeting 변수는 문자열 'hello'를 타입으로 지정되어 있으므로, 다른 값인 'hi'를 할당하면 컴파..

Programming/TypeScript

[TS] 고급타입(Advanced Types) - 1

Generic Types(제네릭 타입) Generic Types(제네릭 타입)은 다양한 타입의 인자를 받아들이는 타입을 정의할 수 있게 해준다. 이를 통해 코드의 재사용성을 높이고 유연성을 확보할 수 있다. 예를 들어, Array는 여러 타입의 원소를 담을 수 있는 배열을 생성할 수 있다. 하지만 Array는 한 가지 타입만을 받아들이는 것이 아니라, string, number, boolean 등 다양한 타입의 원소를 담을 수 있다. 이런 경우, Array를 사용하기 위해서는 Array, Array와 같은 형태로 타입 인자를 전달해야 한다. function identity(arg: T): T { return arg; } let output1 = identity("myString"); // 타입 인자로 s..

Programming/TypeScript

[TS] 객체 타입(Object Types)

객체 타입(Object Types) TypeScript에서 Object Types는 다양한 형태의 객체를 나타내기 위한 타입이다. 다음은 TypeScript에서 제공하는 Object Types의 종류다. Object Array Tuple Function Class Void Never Enum Union Intersection 이러한 Object Types를 적절히 조합하여 다양한 데이터 타입을 정의할 수 있다. Object TypeScript에서 object 타입은 JavaScript 객체를 나타내는 타입이다. object 타입은 다른 객체 타입을 포함하여 모든 객체 유형에 대한 상위 유형이다. 예를 들어, 다음 코드에서는 object 타입의 변수 person을 선언하고 객체 리터럴을 할당한다. let ..

Programming/TypeScript

[TS] 원시 타입(Primitive Types)

원시 타입(Primitive Types) TypeScript에서는 다양한 원시 타입(primitive types)을 제공한다. 원시 타입은 JavaScript와 유사하며, 변수에 단순한 데이터 값을 저장하는 데 사용된다. Number String Boolean Null & Undefined Symbol Bigint 이러한 원시 타입들은 변수에 할당되는 값의 타입을 명시하는 데 사용된다. TypeScript는 이러한 원시 타입에 대한 타입 추론을 자동으로 수행하므로, 변수에 값을 할당하면 해당 변수의 타입이 자동으로 결정된다. String String은 문자열을 나타내는 자료형으로, TypeScript에서 기본 자료형 중 하나다. String 변수는 문자열을 저장하고 처리할 수 있다. 아래는 TypeScr..

Programming/TypeScript

[TS] 타입스크립트의 개요

타입스크립트란? JavaScript With Syntax For Types. TypeScript extends JavaScript by adding types to the language. TypeScript speeds up your development experience by catching errors and providing fixes before you even run your code. www.typescriptlang.org 타입스크립트(TypeScript)는 마이크로소프트(Microsoft)에서 개발한 오픈소스 프로그래밍 언어로, 자바스크립트(JavaScript)의 상위 집합 언어이다. 자바스크립트와 마찬가지로, 타입스크립트는 웹 브라우저와 노드(Node.js) 환경에서 실행되며, 객체 ..