객체지향 프로그래밍 챕터 공부하다보니 앞부분도 정리를 해두어야 할 거 같아서 복습 겸 정리!
const num: number = -6;
const str: string = 'hello';
const boal: boolean = false;
let name: undefined; // 💩
let age: number | undefined;
age = undefined;
age = 1;
function find(): number | undefined {
return undefined;
}
숫자 타입이나 문자열 타입처럼 바로 지정해서는 쓰지 않고, 다른 타입을 쓸 때 옵션으로 같이 지정해준다.
let person: null; // 💩
let person2: string | null;
null도 마찬가지
let notSure: unknown = 0;
notSure = 'he';
notSure = true;
unknown은 어떤 타입으로 할당할지 알 수 없기 때문에 가능하면 쓰지 않는 것이 좋다.
let anything: any = 0;
anything = 'hello';
any도 어떤 타입이든 할당할 수 있기 때문에 가능하면 쓰지 않는 것이 좋다.
function print(): void {
console.log('hello');
return;
}
let unusable: void = undefined // 💩
아무 것도 리턴하지 않는 타입
function throwError(message: string): never {
// message -> server (log)
throw new Error(message);
while(true) {}
}
let neverEnding: never; // 💩
절대 리턴할 수 없는 타입, 에러 핸들링 또는 while문이 계속 도는 경우 사용
let obj: object; // 💩
function acceptSomeObject(obj: object) {}
acceptSomeObject({ name: 'ellie'});
acceptSomeObject({ animal: 'dog' });
원시 타입을 제외한 모든 object 타입을 할당 가능하므로 어떤 object 타입인지 구체적으로 명시하는 것이 좋다.