Typescript는 사용하는 목적은 코드의 목적을 명시하고, 목적에 맞지 않는 변수 또는 함수 함수에서 에러를 사전에 제거하기 위해서 이다.
함수에서 매개변수로 받은 타입들을 명시.
// string, number, boolean
function add(n1: number, n2: number, showResult: boolean, phrase: string) {
const result = n1 + n2;
if (showResult) {
console.log(phrase + result);
} else {
return result;
}
};
const number1 = 5;
const number2 = 2.8;
const printResult = true;
const resultPhrase = "Result is : ";
add(number1, number2, printResult, resultPhrase);
function add(n1: number, n2: number, showResult: boolean, phrase: string) {
// 타입 추론
const result = n1 + n2;
if (showResult) {
console.log(phrase + result);
} else {
return result;
}
};
// 타입 할당
let number1: number;
number1 = 5;
let number2 = 2.8;
const printResult = true;
let resultPhrase: string;
resultPhrase = "Result is : ";
add(number1, number2, printResult, resultPhrase);
객체는 {}
기호를 사용해서, key/value type을 명시한다.
// 중첩된 객체
const product: {
id: string;
price: number;
tags: string[];
details: {
title: string;
dascription: string
}
} = {
id: 'vo2020',
price: 12.99,
tags: ['great-offer', 'hot-and-new'],
details: {
title: 'Red Carpet',
dascription: 'A great carpet - almost brand-new!'
}
};
배열에 요소들의 타입이 다를 때 any
써서 대체할 수 있지만, 함부로 쓰면 안된다.
let activities: string[];
activities = ['Tv', '1']
// Tuple
const user: {
name: string;
age: number;
hobbies: string[];
role:[number, string]
} = {
name: 'Tom',
age: 20,
hobbies: ['Sports', 'Cooking'],
role:[2, 'author']
// Enum
enum Role { ADMIN = 5, USER = 100, AUTHOR = 200 };
const user = {
id: 'vi2020',
age: 30,
hobbies: ['Sports', 'Cooking'],
role: Role.USER,
};
if (user.role === Role.USER) {
console.log('yes user'); // yes user
}
// any
let activities: any[];
activities = ['Tv', 1]
void는 함수에 반환(return)값이 없을 때 사용된다.
function add(n1: number, n2: number) {
return n1 + n2;
}
function printResult(num: number): void {
console.log('Result : ' + num);
}
printResult(add(5, 12))
function generateError(msg: string, code: number): never {
throw { msg: msg, code: code };
}
generateError('An error occured!', 500);
기본 타입 →(SITE)