성장, 그리고 노력

부족하더라도 어제보다 더 잘해지자. 노력은 절대 배신하지 않는다.

Typescript 18

What is Typescript?

Typescript (타입스크립트) 타입스크립트는 좀 특이한 언어이다. python이나 Ruby처럼 인터프리터(Interpreter) 언어도 아니고, 그렇다고 Java나 C처럼 Lower-level language도 아니다. 대신 더 높은 수준의 언어(High-level language)인 JavaScript 언어로 컴파일된다. 그래서 자바스크립트와 타입스크립트의 관계는 필연적일 수밖에 없으며, 타입스크립트를 좀 더 명확히 알기 위해서는 이 관계를 먼저 정확하게 알아야 한다. Typescript와 Javascript 관계 타입스크립트를 한 번이라도 접해봤다면 제일 처음 듣는 개념은 이것일 것이다. "Typescript is a superset of Javascript." 한글로는 "타입스크립트는 자바스크..

Typescript 2019.12.19

[Typescript] Optional Chaining과 Nullish Coalescing

Typescript 3.7.0 버전부터는 많은 개발자들이 고대하던 몇 가지 스펙이 추가되었다. 그래서 간단하게나마 소개해 보려고 한다. cf) vs-code 사용자라면 "Typescript 버전 3.7 + 워크 스페이스 버전 3.7" 설정을 잊지 말자! Optional Chaining typescript 3.7.0 vs-code 1.41 ECMAScript 기능 중 많은 요구가 있었던 Optional Chaining이 TypeScript 3.7에서 추가되었다. 이미 많은 다른 언어에서는 지원되고 있었다. 물론 이름은 다를 수 있다. C#: Null-conditional operator Swift: Optional Chanining CoffeeScript: Existential operator What i..

Typescript 2019.12.17

[Typescript] 데코레이터(Decorator)

(간단히 데레코이터 정의부터 살펴보자) 데코레이터 → 새로운 프로그래밍 개념이 아니지만, 파사드 패턴(facade pattern : facade는 건물의 정면을 의미한다. 파사드 패턴은 소프트웨어 디자인 패턴의 하나로 통일된 인터페이스를 통해 복잡한 서브 시스템을 간단히 사용하도록 만든 패턴이다)이나 플라이웨이트 패턴(flyweight pattern : 객체 내부에서 참조하는 객체를 매번 만드는 것이 아니라, 없다면 만들고 있으면 기존 객체를 공유하여 메모리 사용을 최소화하는 패턴이다)과 같은 구조적 디자인 패턴의 하나이다. → 데코레이터 디자인 패턴은 클래스를 수정하지 않고 클래스의 기능을 확장할 수 있는 구조적 패턴의 하나이다. 이것은 별도의 클래스를 생성하고 이 새로운 클래스로 메인 클래스를 래핑(..

Typescript 2019.12.09

[TypeScript] 타입스크립트 조건부 타입(Conditional Type)

(본 내용은 타입스크립트 2.8^ 버전을 기준으로 작성한다.) 조건부 타입(Conditional Type) 조건부 타입은 타입을 결정하는 새로운 방법으로 아래와 같은 문법 구조를 가지고 있다. T extends U ? X : Y 여기서 T, U, X, Y는 모두 타입이다. 위 구문을 해석해 보면 보다 쉽게 이해가 된다. "T 타입이 U에 할당 가능한 타입이면 X라는 타입이고, 아니면 Y라는 타입이다." 간단한 예제를 보자. interface Human { intro(): void; } interface Student extends Human { study(): void; } type Person = Student extends Human ? number : string; // Pserson은 number..

Typescript 2019.12.08

[TypeScript] 타입스크립트 제네릭

Typescript Generics 앞써한 포스팅에서 이미 any타입으로 타입을 느슨하게 만드는 법에 대해서는 공부하였다. 하지만, 문제가 있었다. any의 경우 타입 안정성이 떨어져서 의도치 않는 결과가 나올 수 있고, 그렇다고 한가지 타입으로만 정의하면 지정된 타입 이외에는 다른 타입을 받을 수 없기 때문에 고민이었다. 이 문제를 해결하기 위해 등장한 것이 제네릭(generic) 이다. 만약 다른 언어를 사용해봤다면 한번쯤은 들어봤을 문법이긴 하다. 사용법은 크게 다르지 않으며, 천천히 살펴보도록 하겠다. 제네릭 특징 제네릭은 다음과 같은 특징이자 장점을 가지고 있다. 컴파일시 타입 안정성을 보장한다. 캐스팅 관련 코드를 제거할 수 있다. 일단 예시 코드를 보면서 조금 더 상세하게 보겠습니다. fun..

Typescript 2019.12.08

[TypeScript] 타입스크립트 기본기 다지기3

제어문에 대해 간단히 살펴보겠습니다. 너무 쉬운 내용은 생략하고 한번더 생각해야되는 내용 위주로 소개하려고 합니다(if문 기본부터 하기에는...). Fall-through (폴스루) switch-case문에서 흔히 많이 사용하는 패턴입니다. 개발자가 의도하는 경우도 많고, 아닌 경우도 있습니다. const num: any = one; switch (num){ case "one": console.log("one이에욤"); // fall-through case "two": console.log("two이에욤"); break; default: console.log("모!!"); break; } tsconfig.json에서 컴파일 옵션을 통해 막을수도 있습니다. { "compilerOptions": { "noF..

Typescript 2019.12.08

[TypeScript] 타입스크립트 기본기 다지기2

Types 타입스크립트를 여러가지 타입을 같습니다(number, string, boolean...). 물론 앞에서도 약간의 언급과 함께 넘어갔지만, 이번에 좀 더 심화해서 살펴보겠습니다. number 타입의 경우 hex, binary, octal 모두 가능합니다. string 타입의 경우 큰 따옴표(", Double quotes), 작은 따옴표(', single quotes) 모두 가능 합니다. 또한 역따옴표(`, backtick)으로 깜싸져 있을 경우 멀티라인도 가능합니다. Array 타입도 가능하며, 방법은 두 가지가 있습니다. const listA: number[] = [1, 2, 3]; const listB: Array = [1, 2, 3]; 참고로 배열(array)타입의 요소로는 숫자 타입뿐만 ..

Typescript 2019.12.08

[TypeScript] 타입스크립트 기본기 다지기

타입스크립트(TypeScript) - 정적 타입 언어 자바스크립트를 사용할때 안정성 있는 프로그래밍을 위한 방법입니다. 조금만 어렵게 말해보자면, 동적 타입 언어인 자바스크립트의 변수 타입은 런타임시에 결정되기 때문에 타입 오류 또한 런타임시에 발견됩니다. TMI이긴 하지만, 타입스크립트는 델파이의 창시자인 앤더스 헤일스버그(Anders Hejlsberg)라는 분이 만들었습니다. 그래서인지 타입스크립트를 하시다보면 C#과 비슷한데...라는 생각이 드실수도 있어요. 당연하겠죠? 워낙 유명하시니깐요.. [javascript] let sampleNumber = 9208; sampleNumber = "구이공팔"; (자바스크립트에서는 문제 없이 실행됨) 그러다보니 다른 정적 타입 언어(Java, C++)에 비해 ..

Typescript 2019.12.08
반응형