본문 바로가기

TypeScript

기본 타입

불리언

자바스크립트의 boolean에 대응하는, 참 또는 거짓을 나타내는 타입이다.

 

const isTypeScriptAwesome: boolean = true;
const doesJavaScriptHasTypes: boolean = false;

 

숫자

숫자를 나타내는 타입이다. 자바스크립트에서는 정수, 부동 소수점 등의 구분이 따로 없고 모든 수가 IEEE754 표준을 따르는 부동소수점이고, 타입스크립트의 number 타입도 마찬가지다.

 

const yourScore: number = 100;
const ieee754IsAwesome: number = 0.1 + 0.2; // 0.30000000000000004

 

문자열

문자열을 나타내는 타입이다. ES6 템플릿 리터럴 역시 string 타입의 값이다.

 

const authorName: string = '김지혜';
const toReaders: string = `
타입스크립트 처음해본다.
재밌는것같다.
`;

 

 

null / undefined

null 타입과 undefined 타입은 각각 nullundefined라는 하나의 값만을 갖는다.

이 두 값을 자기 자신의 타입, 그리고 아래에서 언급될 void 타입 이외의 타입에 할당하려 하면 타입 에러(TS2322: Type 'null' is not assignable to type 'number' 등)가 발생한다.

 

타입스크립트에서, 원래 nullundefined는 기본적으로 모든 타입의 서브타입이다.
즉 아무런 설정이 없다면 아래와 같은 식의 할당이 허용된다.
const a: number = null; // okay
하지만 이런 동작은 버그를 양산하기 쉽다. 때문에 타입스크립트 2.0에 null과 undefined 값을 다른 타입에 할당하는 것을 막는 --strictNullChecks 플래그가 추가되었다.
모든 코드 예제는 --strict플래그가 켜진 환경을 가정하고 있으며,
--strictNullChecks 플래그--strict 플래그에 포함된다.
실 프로젝트에서도 해당 플래그를 켜는 것을 추천.

 

특별한 타입

자바스크립트에서 직접적으로 대응되는 값은 없지만 타입스크립트가 제공하는 특수한 타입이 몇 가지 있다.

any

any 타입은 모든 타입과 호환 가능하다. 즉, 모든 값의 타입을 any 로 지정할 수 있고, any 타입의 변수에는 모든 값을 할당할 수 있다

let bool: any = true;
bool = 3;
bool = 'whatever';
bool = {};

void

voidnullundefined 만을 값으로 가질 수 있는 타입이다. 아무런 값도 반환하지 않는 함수의 반환 타입을 표시할 때 사용한다.

function nothing(): void { }

never

never는 아무런 값도 가질 수 없는 타입이다.

**function alwaysThrow(): never {
  throw new Error(`I'm a wicked function!`);
}**

'TypeScript' 카테고리의 다른 글

함수  (0) 2019.10.30
타입 별칭  (0) 2019.10.30
객체  (0) 2019.10.30
배열과 튜플  (0) 2019.10.30
기초 문법  (0) 2019.10.30