
타입스크립트의 기본 타입은 다음과 같다.
let itemName: string = '운동화';
let itemPrice: number = 129000;
let membersOnly: boolean = true;
let owner: undefined = undefined;
let seller: null = null;
string, number, boolean 타입 외에 undefined와 null 타입도 존재한다.
자바스크립트는 기본적으로 char 타입을 지원하지 않고, 모든 문자를 문자열로 처리하기 때문에 string만 존재한다.
정수, 실수 모드 number 타입으로 사용
undefined와 null은 다른 값, 다른 타입이므로 타입 공유 불가

배열 타입은 아래와 같이, 타입[]과 같은 형식으로 타이핑한다.
const name: string[] = [];
const grade: number[] = [];
만약 지정한 타입과 다른 값을 배열에 삽입하려 한다면 오류가 발생한다.
name.push(90); // 'number' 형식의 인수는 'string' 형식의 매개 변수에 할당할 수 없습니다.
grade.push('Park'); // 'string' 형식의 인수는 'number' 형식의 매개 변수에 할당할 수 없습니다.
2차원 배열은 다음과 같이 타입[][]과 같은 형식으로 타이핑한다.
const address: string[][] = [
['Korea', 'Seoul'],
['Daegu'],
['Korea', 'Busan', 'Gwangan'],
];
만약 배열의 개수를 명확하게 정하고 싶으면 튜플 타입을 사용하면 된다. 튜플은 배열의 요소 자리에 타입을 지정하여, 배열의 개수와 타입을 엄격하게 지정하는 자료형이다.
튜플 내 모든 타입을 같은 타입으로 지정할 필요는 없고, 서로 다른 타입들과 혼용 가능하다.
const profile: [string, number, string] = [
'Park', 20, 'Seoul'
]
만약 튜플에 지정된 요소 개수보다 적게 할당하거나, 지정된 타입 외에 다른 자료형을 할당한 경우 오류가 발생한다.
const profile: [string, number, string] = [
'Park', 20,
] // '[string, number]' 형식은 '[string, number, string]' 형식에 할당할 수 없습니다. 소스에 2개 요소가 있지만, 대상에 3개가 필요합니다.ts(2322)
const profile: [string, number, string] = [
'Park', 'Seoul, 20
] // 'string' 형식은 'number' 형식에 할당할 수 없습니다.ts(2322)