tuple : 정해진 배열의 길이와 요소별 타입을 지정하고 싶을 때 사용
tuple
let human: { name: string; age: number; role: [string, number] // 튜플 표기법 } = { name: "TaeSung", age: 20, role: ["abc", 10] }
enum
enum
enum Role { ADMIN, READ_ONLY, AUTHOR }; // enum 정의 // or enum Role { 'ADMIN', READ_ONLY = 100, AUTHOR = 200 } // enum 정의 let human = { name: "TaeSung", age: 20, role: Role.ADMIN // enum 표기법 } if (human.role === Role.AUTHOR) { console.log('is author'); }
any
any
let myHobbies: any[]; myHobbies = ["Sports", "Music"]
union
union
// 파이프 연산자(|)를 활용하여 여러 타입을 지정한다. function combine(input1: number | string, input2: number | string) { let result; if (typeof input1 === 'number' && typeof input2 === 'number') { result = input1 + input2; } else { result = input1.toString() + input2.toString(); } return result; }
literal
literal
// 예시 1번 const hello = "Hello World"; // "Hello World"라는 타입을 지정한 것 let hi = "Hi World"; // let으로 변수를 선언했으므로 문자열 타입을 지정한 것 // 예시 2번 let people: "taesung" | 123 | true people = "taesung" people = 123 people = true
// 문제번호:10872번; 팩토리얼
const fs = require("fs");
const { join } = require("path");
const stdin = (
process.platform === "linux" ? fs.readFileSync("/dev/stdin").toString() : `10`
).split("\n");
const input = (() => {
let line = 0;
return () => stdin[line];
})(); // 여기까진 고정으로 사용
// 로직 시작
let num = +input();
function factorial(init) {
if (init === 0) return 1;
return init * factorial(init - 1); // 이부분때문에 재귀함수라고 불린다.
}
console.log(factorial(num));