home
자바
home
🔥

#2.2 ~ #2.4

#2.2 Types of TS part One
#2.3 Types of TS part Two
#2.4 Types of TS part Three

선택적 파라미터(or 프로퍼티)

const player : { name: string, age?: number // ?: 필수가 아닌 옵션 프로퍼티 } = { name: 'nico' }; //player.age가 옵셔널 프로퍼티여서 age가 존재하는지 체크해주어야 한다. if(player.age && player.age < 10) { }
TypeScript
복사

타입 별칭

//type alias type Player = { name: string, age?: number } const nico: Player = { //함수 리턴 타입도 지정할 수 있다. name: 'nico' } const lynn: Player = { name: 'lynn', age: 12 }
TypeScript
복사

ReadOnly

type Age = number; type Name = string; type Player = { readonly name: Name age?: Age } const playerMaker = (name: string): Player => ({name}) const jjw= playerMaker('jjw'); jjw.age = 12; jjw.name = 'jjjjjj'; // readonly 속성의 프로퍼티를 바꾸려고 해서 에러남
TypeScript
복사
const numbers: readonly number[] = [1, 2, 3, 4]; numbers.push(1);
TypeScript
복사
readonly 속성의 배열에 값을 넣으려고 해서 에러남

튜플 (Tuple)

const player: [string, number, boolean] = ['nico', 1, true];
TypeScript
복사
API에서 객체(object) 형태로 리턴받지 못하고 배열형태로 리턴받을 경우 사용할 수 있다.

any

아무 타입이 될 수 있다.
사용하지 않는 것을 권장한다.
const a: any[] = [1, 2, 3, 4]; const b: any = true; a + b; //타입이 다른 두 변수지만 에러가 나지 않는다. (자바스크립트처럼 동작)
TypeScript
복사

unknown

let a: unknown; if(typeof a === 'number') { let b = a + 1; } if(typeof a === 'string') { let b = a.toUpperCase(); }
TypeScript
복사

void

함수 리턴타입이 없는 것을 의미한다.
따로 명시해줄 필요는 없다.
명시하지 않아도 타입스크립트는 자동으로 인식한다.

never

함수가 절대로 리턴하지 않을 때 발생하는 것을 의미한다.