์ด๋ฆ์ ํ๋ผ๋ฏธํฐ๋ก ์ ๋ ฅํ๋ฉด ์ฝ์ ์ถ๋ ฅ
๊ทธ๋ฆฌ๊ณ ํ๋ผ๋ฏธํฐ๊ฐ ๋น์ด์์ ์ ๋น์ด์๋ค๊ณ ์๋ ค์ฃผ๊ธฐ
let doConsole = function(name? :string): void {
if(typeof name === 'string'){
console.log(`์๋
ํ์ธ์ ${name}`);
} else { console.log(`์ด๋ฆ์ด ์์ต๋๋ค.`) }
}
doConsole('์ฒ ์')
ํ๋ผ๋ฏธํฐ๋ก ์ซ์ ํน์ ๋ฌธ์๋ฅผ ๋ฃ์ผ๋ฉด ์๋ฆฟ์ ์๋ ค์ฃผ๊ธฐ
let doConsole = function(numish? :string | number): number {
if(typeof numish === 'string'){
return numish.length;
} else if(typeof numish === 'number') {
return numish.toString().length;
} else { return 0;}
}
console.log(doConsole('22233'))
console.log(doConsole(2233))
ํ๋ผ๋ฏธํฐ๋ฅผ ์ ๋ ฅ์ ๊ฒฐํผ๊ฐ๋ฅ์ฌ๋ถ ์๋ ค์ฃผ๊ธฐ
- ํ๋ผ๋ฏธํฐ๋ ์์๋(๋ง์๋จ์), ์ง๋ณด์ ์ฌ๋ถ(true/false), ๋งค๋ ฅ์ ์ ('์' or '์ค' or 'ํ')
- ์์๋์ ๋ง์ ๋น 1์ , ์ง๋ณด์ ์ 500์ & ๋ฏธ๋ณด์ ์ 0์ , ๋งค๋ ฅ์ ์๋ '์'์ผ ๋๋ง 100์ ์ผ๋ก ๊ณ์ฐ
- ์ด ์ ์๊ฐ 600์ ์ด์์ผ ๊ฒฝ์ฐ "๊ฒฐํผ๊ฐ๋ฅ"์ return. ๊ทธ ์ธ์ ์๋ฌด๊ฒ๋ returnํ์ง ์์
type salary = number;
type hadHouse = boolean;
type charm = string;
let canMarrige = function(salary, house, charm) :string | void {
let point :number = 0;
point += salary;
if(house){ point += 500 }
if(charm === '์'){ point += 100 }
if(point >= 600){ return '๊ฒฐํผ๊ฐ๋ฅ' }
}
console.log(canMarrige(700, false, '์ค'))
console.log(canMarrige(100, false, '์'))
๊ฐ์๋ฐ์๋ณด ํจ์ ๋ง๋ค๊ธฐ
- '๊ฐ์', '๋ฐ์', '๋ณด' ๋ฌธ์๋ค๋ง ํ๋ผ๋ฏธํฐ๋ก ์ ๋ ฅํ ์ ์๊ณ
- '๊ฐ์', '๋ฐ์', '๋ณด' ๋ผ๋ ๋ฌธ์๋ค๋ง ๋ด์ ์ ์๋ array ์๋ฃ๋ง return ํ ์ ์์
- ์๋ฅผ ๋ค๋ฉด ['๊ฐ์', '๋ณด', '๊ฐ์'] ์ด๋ฐ๊ฑฐ return ๊ฐ๋ฅ
- ['๊ฐ์', '๋ฐ๋ณด'] ์ด๋ฐ๊ฑฐ returnํ๋ฉด ์๋ฌ๋์ผํจ
type Rockpaperscissors = '๊ฐ์' | '๋ฐ์' | '๋ณด';
function play(choices: Rockpaperscissors[]): Rockpaperscissors[] {
const validChoices: Rockpaperscissors[] = ['๊ฐ์', '๋ฐ์', '๋ณด'];
// ๋ชจ๋ ์ ํ์ด ์ ํจํ์ง ํ์ธ
if (choices.every(choice => validChoices.includes(choice))) {
return choices;
} else {
throw new Error('์ ํจํ์ง ์์ ์ ํ์ด ํฌํจ๋์ด ์์ต๋๋ค.');
}
}
// ํ
์คํธ
try {
console.log(play(['๊ฐ์', '๋ณด'])); // ํต๊ณผ
// ์๋๋ ์ ํจํ์ง ์์ '๋ฐ๋ณด'๊ฐ ํฌํจ๋์ด ์๊ธฐ ๋๋ฌธ์ ์๋ฌ
// console.log(play(['๊ฐ์', '๋ฐ๋ณด']));
} catch (error) {
console.error(error.message);
}
์ถ์ฒ : ์ฝ๋ฉ์ ํ https://codingapple.com/
'๐ TypeScript > ๋ฌธ์ ํ๊ธฐ (์ฝ๋ฉ์ ํ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ์ ์คํฌ๋ฆฝํธ ์์ Part 2 (5~9) : ํด๋์ค, ์ค๋ธ์ ํธ ํ์ ์ง์ (0) | 2023.12.20 |
---|