Array JavaScript처럼 TypeScript 배열도 연결(concatenation), 푸시(pushing), 검색(searching), 슬라이스(slicing) 등을 지원하는 특별한 객체입니다. TypeScript는 T[]와 Array라는 두 가지 배열 문법을 지원합니다. 성능, 의미상 두 표현은 같습니다. let a = [1, 2, 3]; // number var b = ['a', 'b']; // string[] let c: string[] = ['a']; // string[] let d = [1, 'a']; // (string | number)[] const e = [1, 'b']; // (string | number)[] let f = ['red']; f.push('blue'); f.pus..
객체(Object) TypeScript의 객체(object) 타입은 객체의 형태(shape)를 정의합니다. 그러나 객체 타입만으로는 ({}로 만든) 간단한 객체와 (new를 사용해 만든) 복잡한 객체를 구분할 수 없습니다. 이는 JavaScript가 구조 기반 타입(structural type)을 갖도록 설계되었기 때문입니다. 따라서 TypeScript도 이름 기반 타입(nominal type) 스타일보다는 JavaScript 스타일을 선호합니다. 구조 기반 타입화 구조 기반 타입화에선 객체의 이름에 상관없이 객체가 어떤 프로퍼티를 갖고 있는지를 따집니다.(이름 기반 타입에선 이름을 따집니다.) 일부 언어에서는 덕 타이핑(duck typing)이라고 합니다(겉표지만 보고 책을 판단하지 않는 것과 같은 원..
null & undefined In TypeScript, both undefined and null actually have their types named undefined and null respectively. TypeScript에서, undefined와 null은 실제로 각각 undefined와 null이라는 타입을 가집니다. Much like void, they're not extremely useful on their own. void와 마찬가지로, 그 자체로는 설정을 하지 않으면 그다지 유용하지 않습니다.(둘 다 소문자만 존재합니다.) // 아래의 변수들에 할당할 수 있는 것들은 거의 없습니다. let u: undefined = undefined; let n: null = null; unde..
symbol symbol(심벌)은 ES2015에 새로 추가된 기능입니다. 실무에선 자주 사용하지 않는 편이며 객체와 맵에서 문자열 키를 대신하는 용도로 사용합니다. symbol 키를 사용하면, 사람들이 잘 알려진 키만 사용하도록 강제할 수 있으므로 키를 잘못 설정하는 실수를 방지합니다. 객체의 기본 반복자(Symbol.iterator)를 설정하거나 객체가 어떤 인스턴스인지(Symbol.hasInstance)를 런타임에 오버라이딩 하는 것과 비슷한 기능을 제공합니다. symbol 타입으로는 할 수 있는 동작이 별로 없습니다:( let a = Symbol('a'); // symbol let b: symbol = Symbol('b'); // symbol var c = a === b; // boolean let..
string 다른 언어에서와 마찬가지로 TypeScript에서도 텍스트 형식을 참조하기 위해 `string` 형식을 사용합니다. JavaScript와 마찬가지로 TypeScript는 문자열 데이터를 둘러싸기 위해 큰 따옴표(" ") 나, 작은따옴표(' ')를 사용합니다. let name: string = "linda"; name = "andy"; Template String 행에 걸쳐 있거나, 표현식을 넣을 수 있는 문자열입니다. 이 문자열은 backick (= backquote) 기호에 둘러싸여 있습니다. 포함된 표현식은 `${ expr } `와 같은 형태로 사용합니다. let fullName: string = `Lee Dayeon`; let age: number = 24; let sentence: s..
number JavaScript와 같이 TypeScript의 모든 숫자는 부동 소수점 값입니다. TypeScript는 16진수 및 10진수 리터럴 외에도, ECMAScript 2015에 도입된 2진수 및 8진수를 지원합니다. number 타입은 모든 숫자(정수, 소수, 양수, 음수, Infinity, NaN 등)의 집합입니다. number 타입에선 덧셈(+), 뺄셈(-), 모듈로(%), 비교(
boolean 가장 기본적인 데이터 타입이며 true(참), false(거짓) 두 개의 값을 가집니다. 이 타입으론 비교 연산(==, ===, ||, &&,?)과 반전(!) 연산을 할 수 있을 뿐, 많은 연산을 지원하지 않습니다. boolean 타입은 아래처럼 사용할 수 있습니다. let a = true; // boolean var b = true; // boolean const c = true; // true let d: boolean = true; // boolean let e: true = true; // true let f: true = false; // error TS2322 위의 예제를 통해 어떤 값이 boolean인지 TypeScript에 알려줄 수 있는 여러 방법을 확인할 수 있습니다. a..
Primitive Types 오브젝트와 레퍼런스 형태가 아닌 실제 값을 저장하는 자료형입니다. Primitive 형의 내장 함수를 사용 가능한 것은 JavaScript 처리 방식 덕분입니다. ES2015 기준 6가지 boolean number string symbol(ES2015) null undefined let name = 'linda'; name.toString(); 서브 타입 or 래퍼 객체 literal 값으로 Primitive 타입의 서브 타입을 나타낼 수 있습니다. true; false; 'Hi'; 3.1415; null; undefined; 또는 Wrapper 객체로 만들 수 있습니다. new Boolean(false); // typeof new Boolean(false) : 'object..