📕 인프런 강의 타입스크립트 입문 - 기초부터 실전까지를 수강하며 작성한 게시물입니다.
let str: string = 'hello';
let num: number = 10;
let arr: Array<number> = [1, 2, 3];
let items: number[] = [1, 2, 3]; // 배열 리터럴 사용
let heroes: Array<string> = ['Capt', 'Thor', 'Hulk', 10]; // Error
let address: [string, number] = ['seoul', 100];
let obj: object = {};
let person: object = {
name: 'kyungjin',
age: 26
};
객체 내부의 타입도 명시할 수 있다. 필드 누락 시 Linter에서 오류를 잡아준다.
let person: { name: string, age: number } = {
name: 'kyungjin',
age: 26
};
let show: boolean = true;
function sum(a: number, b: number) {
return a + b;
}
sum(10, 20);
function func(): number {
return 10;
}
function sum(a: number, b: number): number {
return a + b;
}
// TS 정상 동작
sum(10, 20);
// TS 에러
sum (10, 20, 30); // Error!
// JS 정상 동작
sum(10, 20, 30); // JS에서는 오류가 발생하지 않는다
TypeScript에서 함수 파라미터와 1대1 매핑이 되어야 한다.
그렇다면 인자의 개수가 다를 때 함수를 여러 개 생성해 주어야 하는가?
log('hello world');
log('hello ts', 'abc');
Optional Parameter를 사용하면 해결 할 수 있다.
function log(a: string, b?: string) {
}
// 정상 동작
log('hello world');
log('hello ts', 'abc');