본문 바로가기

언어/TypeScript14

제네릭(Generics) C++ 에서의 제네릭과 동일하다.function getText(text: T): T { return text;}getText('hi');getText(10);getText(true);- 이렇게 T에 자료형이 들어가며 동작한다. 타입스크립트에서 쓰는 이유function echo(text: string): string { return text; }function echo(text: any): any { return text; }만약 모든 타입에 대해서 허용하고 싶다면 두 번째 처럼 any 를 쓰면 된다.단, any 타입은 타입검사를 하지 않기 때문에, 동작에는 문제가 없지만 파라미터로 어떤 타입이 들어갔고, 어떤 값이 반환 되는지 알 수 없다. 그래서 제네릭을 사용한다.그래서 제네릭을 사용하면 함수를 호출.. 2025. 4. 15.
Class 특성 타입스크립트의 class 에 대해서 몇 가지 특성을 알아보자. readonlyclass Developer { readonly name: string; constructor(theName: string) { this.name = theName; }}let john = new Developer("John");john.name = "John"; // error! name is readonly.클래스의 멤버 앞에 readonly 를 붙이면, 읽기모드로만 접근 가능하다.또한 readonly 를 쓰게되면 생성자 함수에다가 초기화 코드를 넣어줘야하므로, 아래와 같이 코드 길이를 줄일 수 있다.class Developer { readonly name: string; constructor.. 2025. 4. 14.
Union Type, Intersection Type Union Type 정의 방식- || 연산자랑 같은 의미.- function example(text: string | number) { ... } 처럼 | 연산자를 이용해서 타입을 여러 개 연결하는 방식 장점// any를 사용하는 경우function getAge(age: any) { age.toFixe(); // 에러 발생, age의 타입이 any로 추론되기 때문에 숫자 관련된 API를 작성할 때 코드가 자동 완성되지 않는다. return age;}// 유니온 타입을 사용하는 경우function getAge(age: number | string) { if (typeof age === 'number') { age.toFixed(); // 정상 동작, age의 타입이 `number`로 추론되기 때.. 2025. 4. 14.
enum 자료형 C++을 비롯한 타 언어와 개요는 동일하다.어떻게 쓰는지만 알아보자.enum Response { a = 100, b, c, d}function respond(name: string, msg: Response) { console.log(name); console.log(msg);}respond("mr.kim", Response.c);숫자, 문자 모두 사용법은 같다. 단, 문자형 이넘은 숫자형과 다르게 auto incrementing 이 없다.* 숫자와 문자를 섞어 Heterogeneous Enums 를 쓸 수는 있지만 권장되지는 않는다.  enum 의 특징1. 런타임 시점런타임(실행) 할 때, 실제 객체의 형태로써 존재한다.enum Variables { X, Y, Z}function getX(.. 2025. 4. 13.
인터페이스 인터페이스 기초자바나 컴개론 등에서 배웠던 인터페이스와 동일하다.객체가 A 인터페이스의 타입이다 라는 것은 해당 인터페이스의 메소드를 구현했다는 의미.즉, 클래스나 객체가 어떤 멤버 변수와 메서드를 가져야 하는지 정의한 것을 인터페이스라고 한다. 다만, 타입스트립트의 interface 는 객체 타입 뿐만 아니라 아래에 대해서도 타입을 정의할 수 있다.객체의 스펙(속성과 속성의 타입)함수의 파라미터함수의 스펙(파라미터, 반환 타입 등)배열과 객체를 접근하는 방식클래스let person = { name: 'Capt', age: 28 };function logAge(obj: { age: number }) { console.log(obj.age); // 28}logAge(person); // 28 위 함수의 .. 2025. 4. 13.
함수 기본적인 함수의 타입 선언은 다음과 같다.function sum(a: number, b: number): number { return a + b;}그냥 JS의 매개변수와 반환 값에 타입을 붙여준게 끝이다. 함수 파라미터- TypeScript 에서 함수의 인자는 모두 필수값으로 간주되고, 컴파일러가 이를 꼭 확인한다.- 따라서 undefined, null 이라 할지라도 인자로 꼭 넘겨줘야한다.function sum(a: number, b: number): number { return a + b;}sum(10, 20); // 30sum(10, 20, 30); // errorsum(10); // error* 파라미터 초기화는 JS랑 동일하다function sum(a: number, b = '100'): n.. 2025. 4. 11.