본문 바로가기

TypeScript9

Generic - 선언 시점이 아닌 생성 시점에 타입을 명시하여 하나의 타입이 아닌 다양한 타입을 사용할 수 있도록 하는 기법이다. - 한 번의 사용으로 다양한 타입에 재사용이 가능하다. - T는 제네릭을 선언할 때 관용적으로 사용되는 식별자이다. (반드시 T를 사용하는 것은 아니다.) function a(arg: T): T { return arg; } let x = a("wangi"); console.log(x); // wangi 출력 타입은 string let y = a("wangi"); console.log(y); // wangi 출력 타입은 string let z = a(12); console.log(z); // 12 출력 타입은 number - class에서 generic 사용이 가능하다. 클래스 이름 뒤에 .. 2023. 9. 1.
Module - 재사용이 가능한 코드 조각을 의미한다. - 자체 스코프 내에서 실행된다. - 모듈에서 데이터를 불러오는 import와 모듈에서 데이터를 내보내는 export로 나누어져 있다. ​ (1) export - 모듈의 변수, 함수, 타입 등을 외부 모듈이 사용할 수 있도록 표시한 키워드이다. export var a = "wangi"; // export data export function b(x, y) { // export function 방법1 : 정의와 동시에 export return x + y; } function c(x, y) { // export function 방법2 : 정의 후 함수 이름으로 export return x * y; } export { c }; export class d{ // exp.. 2023. 8. 31.
Decorator - 클래스 선언과 멤버에 대한 주석(annotations)과 메타 프로그래밍 구문을 모두 추가할 수 있는 방법이다. - 데코레이터를 사용하려면 tsconfig.json설정에서 experimentalDecorators를 true로 바꿔줘야 한다. - 클래스, 속성, 메서드, 접근 제어자, 매개변수 등에 사용할 수 있는 특별한 종류의 선언이다. @를 키워드로 붙인다. - 데코레이터가 적용된 메서드가 실행되거나 클래스가 new라는 키워드를 통해 인스턴스화 될 때가 아닌 런타임 때 실행된다. 즉, 매번 실행되지 않는다. (1) 프로퍼티 데코레이터 - 프로퍼티 선언 직전에 선언한다. - 특정 이름의 프로퍼티가 클래스에 선언되었음을 관찰하는데만 사용한다. class a { @b c = 'wangi'; } const.. 2023. 8. 30.
Class (1) 클래스 정의 - 클래스 몸체에 클래스 프로퍼티를 선언할 수 없고 반드시 생성자 내부에서 클래스 프로퍼티를 선언하고 초기화한다. class a { b: string; constructor(b) { this.b = b; // 클래스 프로퍼티의 선언과 초기화 } c() { console.log(`a, ${this.b}, c`); } } const e = new a('wangi'); e.walk(); // a, b, c (2) 접근 제한자 - public, private, protected를 지원하며 의미도 동일하다. - TypeScript는 접근 제한자를 생략하면 암묵적으로 public이 선언된다. 접근 가능성 public protected privated 클래스 내부 O O O 자식 클래스 내부 O .. 2023. 8. 30.