Table of contents
이 챕터에서, 우리는 가장 흔한 타입의 값들에 대해 다뤄볼 것이다.
타입은 타입 주석뿐 아니라 더 많은 장소에서 사용할 수 있다. 우리가 타입 그 자체에 대해 배워보았듯이, 우리는 새로운 구조체를 구성할 때 이 타입들을 어디서 참조시킬 수 있는지 배울 것이다.
우리는 자바스크립트나 타입스크립트를 작성할 때 마주할 수 있는 가장 기본적이고 흔한 타입을 살펴볼 것이다. 나중에는 더욱 복잡한 타입의 코어 블럭도 살펴볼 것이다.
string
, number
, and boolean
자바스크립트는 string
, number
그리고 boolean
이라는 매우 자주 쓰이는 원시 타입을 가지고 있다. (이하 문자열, 숫자, 불린)
타입스크립트도 그에 상응하는 타입을 가지고 있다.
이미 예상하겠지만, 이 타입들은 자바스크립트의 typeof
연산자를 사용했을 때 나오는 이름과 같다.
[1, 2, 3]
와 같은 배열을 사용하려면, 타입스크립트에서는 number[]
와 같은 문법을 사용할 수 있다.
또한 Array<number>
와 같이 작성할 수도 있으며, 이는 완전히 같은 의미다.
또한 우리는 T<U>
와 같은 제네릭 타입도 살펴볼 것이다.
any
타입스크립트는 any
라 불리는 특별한 타입을 가지고 있다.
이 타입은 타입을 특정하고 싶지 않음에도, 타입 체킹 오류를 발생시키고 싶지 않을 때 사용한다.
어떤 값이 any
타입일 때, 당신은 모든 프로퍼티에 접근할 수 있다.
이 타입이 적용된 값은 함수처럼 호출할 수도 있고, 어떤 타입의 값도 모두 할당할 수 있다.
-any.ts-
let obj: any = { x: 0 };
// 아래의 모든 코드 줄은 타입 체크 컴파일 에러를 발생시키지 않는다.
obj.foo();
obj();
obj.bar = 100;
obj = "hello";
const n: number = obj;
만약 타입스크립트가 추론할 수 없는 컨텍스트에서 타입을 지정하지 않으면, 컴파일러는 보통 기본적으로 any
타입을 지정한다.
당신은 보통 이를 원치 않기 때문에, noImplicitAny
를 플래그로 작성함으로써 암묵적인 any
로 인한 오류를 막는 것을 권한다.
const
, var
, 그리고 let
과 같은 선언자로 변수를 선언할 때, 그 변수의 타입을 명시적으로 특정하기 위해 선택적으로 타입 주석을 달 수 있다.
-alice-name.ts-