Type | Description |
---|---|
boolean | true 와 false |
null | 값이 없음을 명시 |
undefined | 값을 할당하지 않은 변수의 초기값 |
number | 숫자(정수와 실수, Infinity, NaN) |
string | 문자열 |
symbol | 고유하고 수정 불가능한 데이터 타입이며 주로 객체 프로퍼티들의 식별자로 사용(ES6에서 추가) |
object | 객체형(참조형) |
array | 배열 |
tuple | 고정된 요소수만큼의 타입을 미리 선언 후 배열을 표현 |
enum | 열거형. 숫자값 집합에 이름을 지정한 것이다. |
any | 타입 추론(type inference)할 수 없거나 타입 체크가 필요없는 변수에 사용. var 키워드로 선언한 변수와 같이 어떤 타입의 값이라도 할당 가능. |
void | 일반적으로 함수에서 반환값이 없을 경우 사용한다. |
never | 결코 발생하지 않는 값 |
const player : {
name: string,
age: number
} = {
name: "jaehun",
}
이 경우 player.name과 age의 type을 말해줬지만 정작 age의 값을 적지 않아서 error가 발생한다. 이럴 땐
const player : {
name: string,
age?: number
} = {
name: "jaehun"
}
이렇게 age 다음에 ?: 를 붙여주어 age의 type이 number이거나 undefined이 될 수 있게 해준다.
하지만 이 때
if(player.age < 10) {
}
처럼 player.age를 불러오려 하면 age가 undefined일 수도 있기 때문에 error가 표시된다. 때문에
if(player.age && player.age < 10) {
}
처럼 작성해 player.age가 존재하는지 확인을 거치게 만들어줄 수 있다.
player가 여러명인 경우 alias type으로 코드의 양을 줄여준다.
type Player = {
name: string,
age?: number
}
const player1 : Player = {
name: "jaehun"
}
const player2 : Player = {
name: "messi"
}
또, age의 타입에 대한 다른 Alias를 만들 수도 있다.(예시일 뿐 굳이 이렇게까지 재사용할 필요는 없다.)
type Age = number;
type Name = string;
type Player = {
name: Name,
age?: Age
}
const player1 : Player = {
name: "jaehun"
}
const player2 : Player = {
name: "messi"
}
type Age = number;
type Name = string;
type Player = {
name: Name,
age?: Age
}
function playerMaker(name: string) : Player {
//argument의 type 지정
return {
name: name
//return값의 type 지정
}
const jaehun = playerMaker("jaehun")
jaehun.age = 26
위의 내용을 arrow function으로 나타내면
const playerMaker = (name: string) : Player => ({name})