// Alias ๋ณ์นญ ํ์ ์ ์ธ
type Age = number;
type Player = {
name: string,
age?: Age
}
const nico: Player = {
name: "nico"
}
const nicoco : Player = {
name: "nicoco",
age: 150
}
//////////////////////////////////
type Name = string
type Age = number
type Player = {
name: Name,
age?: Age
}
// ํจ์์ ํ์ ์ ์ธ => argument์ ํ์ ์ค์ & return value์ ํ์ ์ค์
function playerMaker(name: string) : Player { // < : Player ๋ถ๋ถ
return {
name
}
}
// ํ์ดํ ํจ์์ธ ๊ฒฝ์ฐ
const playMaker = (name: string) : Player => ({name})
const test = playerMaker("LEE")
test.age = 12
let a : undefined = undefined // ์ ์ธX ํ ๋นO
let b : null = null // ์ ์ธO ํ ๋นใ
let c : any = any // TS์์ ๋น ์ ธ๋์ค๊ณ ์ถ์๋ ์ฌ์ฉ, ๊ฐ๋ฅํ ์ฌ์ฉํ์ง ๋ง์
#2.4 Types of TS part Three
TS์๋ง ์๋ ํ์ ๋ค
unknown - ์ด๋ค ํ์ ์ธ์ง ๋ชจ๋ฅด๋ ๋ฐ์ดํฐ
let a : unknown;
let b = a + 1; // error => a๊ฐ number์ธ์ง ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ
////
if(typeof a === 'number'){ // a ์ ํ์ ์ด number ์ผ ๋
let b = a + 1
}
if(typeof a === 'string'){ // a ์ ํ์ ์ด string ์ผ ๋
let b = a.toUpperCase()
}
function hello(): never {
throw new Error("xxx")
}
function bye(name: string|number){
if(typeof name === "string"){
name // string
}else if (typeof name === "number"){
name // number
}else{
name // never
}
}