TypeScript는 boolean, number, string, array, tuple, enum, any, void, null, undefined type을 제공합니다.
boolean
boolean type은 true와 false, 둘 중에 하나를 갖는 type입니다.
|
|
number
number type은 부동소수점 숫자를 갖는 type입니다.
TypeScript에서 모든 숫자는 자바스크립트와 같이 부동소수점 숫자입니다.
|
|
string
string type은 0개 이상의 문자의 나열을 갖는 type입니다.
string 리터럴(literal)은 큰 따옴표(“) 또는 작은 따옴표(‘)를 이용해서 표현합니다.
|
|
template string은 여러 라인에 걸칠 수 있고 식(expression)을 넣을 수 있습니다.
template string은 backtick/backquote (`) 문자로 둘러 싸고 내장되는 식은 ${ expr }의 형태입니다.
|
|
array
배열은 두 가지 방법이 있습니다.
첫번째는 요소의 type과 []를 사용하는 방법입니다.
|
|
두번째는 generic array type, Array
|
|
tuple
tuple는 요소(element)의 type을 지정하는 배열입니다.
|
|
type을 지정하지 않은 index 요소의 type은 union type이 됩니다.
|
|
enum
enum은 미리 정해진 상수(constant)의 집합인 type 입니다.
|
|
enum은 숫자가 0부터 시작하지만 이것을 바꿀 수 있습니다.
|
|
또는 모든 값을 정할 수 있습니다.
|
|
값으로 부터 상수의 이름을 얻을 수 있습니다.
|
|
any
type을 알 수 없는 변수를 표현해야 할 떄가 있습니다. 이 경우 type checking를 하지 않고 compile-time check를 통과하고록 합니다. 그렇게 하기 위해서는 any type을 사용합니다.
|
|
void
void는 return 값이 없는 함수에서 사용합니다.
|
|
null과 undefined
null과 undefined은 각각 null type과 undefined type이 있습니다.
|
|
기본적으로 null과 undefined는 다른 type의 subtype입니다.
이것은 null과 undefined를 number와 같은 type에 할당할 수 있다는 것을 의미합니다.
그러나 –strictNullChecks 플래그를 true로 설정하면 null과 undefined는 void과 각자 해당되는 type에만 할당할 수 있습니다. 이렇게 하면 많은 에러를 피할 수 있습니다. string 또는 null 또는 undefined를 넘기려면 union type string | null | undefined를 사용합니다.
Type assertion
type assertion은 다른 언어에서 type cast와 비슷하나 data를 검사하거나 변환하지 않습니다.
runtime에는 아무런 영향을 주지 않으며 compiler만 사용하니다.
type assertion는 두 가지 형태가 있습니다. 하나는 angle-bracket 문법입니다.
|
|
다른 하나는 as 문법입니다.
|
|
둘중에 선호하는 것을 쓸 수 있으나 JSX와 사용할때는 as 문법이 허용됩니다.