[TypeScript] ๐Ÿณ 2.1 ๋ณ€์ˆ˜ ํƒ€์ž… ์„ ์–ธ

์กฐ์ค€ํ˜•ยท2021๋…„ 11์›” 2์ผ
0

TypeScript

๋ชฉ๋ก ๋ณด๊ธฐ
6/11
post-thumbnail

๐Ÿณ 2์žฅ ๊ธฐ๋ณธํƒ€์ž…๊ณผ ์ปค์Šคํ…€ ํƒ€์ž…

ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋Š” ํƒ€์ž…์ด ์ถ”๊ฐ€๋œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์ผ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ธํ„ฐํŽ˜์ด์Šค, ์ œ๋„ค๋ฆญ๋“ฑ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์— ์—†๋Š” ๋‹ค์–‘ํ•œ ๊ตฌ๋ฌธ๋“ค์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿณ 2.1 ๋ณ€์ˆ˜ ํƒ€์ž… ์„ ์–ธ

๊ฐ•์ œ์ ์ธ ํƒ€์ž… ์„ ์–ธ์ด ๊ท€์ฐฎ๋”๋ผ๋„ ์žฅ๊ธฐ์ ์ธ ๊ด€์ ์—์„œ ๋ณผ ๋•Œ ์ƒ์‚ฐ์„ฑ์ด ๋ˆˆ์— ๋Œ ์ •๋„๋กœ ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.
์‹ค์ˆ˜๋กœ ๋ณ€์ˆ˜ํƒ€์ž…์„ ์ˆซ์ž์—์„œ ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊พผ๋‹ค๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ ๋‹จ๊ณ„์—์„œ ์ด ์˜ค๋ฅ˜๋ฅผ ์žก์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ!

SW ๊ฐœ๋ฐœ์ž๋Š” ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์ปดํŒŒ์ผ๋Ÿฌ๋กœ ํƒ€์ž…์„ ๋ช…์‹œ์  ๋˜๋Š” ์•”์‹œ์ ์œผ๋กœ ์„ ์–ธ ํ•  ์ˆ˜ ์žˆ์Œ.
๋ช…์‹œ์  : ์ฝ”๋“œ์— ์ง์ ‘ ๊ตฌ์ฒด์ ์œผ๋กœ ํ‘œํ˜„ํ•œ๋‹ค๋Š” ๋œป
์•”์‹œ์  : ์ฝ”๋“œ๋กœ ํ‘œํ˜„ํ•˜์ง€ ์•Š์•„๋„ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์•Œ์•„์„œ ์ฒ˜๋ฆฌํ•œ๋‹ค๋Š” ๋œป

๐ŸŒ 2.1.1 ๊ธฐ๋ณธ์ ์ธ ํƒ€์ž… ํ‘œ๊ธฐ

ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋Š” ๋ณ€์ˆ˜ ์„ ์–ธ ํ›„ ํƒ€์ž…๊ณผ ํ•จ๊ผ ์„ธ๋ฏธ์ฝœ๋ก ์„ ๋ถ™์ž„.

let firstName: string;
let age: number;

string, number, boolean,
symbol : Symbol์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•ด ์ƒ์„ฑ๋œ ๊ณ ์œ ๊ฐ’
any : ๋ชจ๋“  ํƒ€์ž…์„ ํ—ˆ์šฉํ•˜๋Š” ํƒ€์ž…, ์ฝ”๋“œ๋ฅผ ์“ฐ๋Š” ๋™์•ˆ ์ •ํ•ด์ง€์ง€ ์•Š์€ ๋ณ€์ˆ˜๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
unknown : any์™€ ๋น„์Šทํ•˜์ง€๋งŒ ๋จผ์ € ํƒ€์ž…์„ ์ง€์ •ํ•˜๊ฑฐ๋‚˜ ์ขํžˆ์ง€ ์•Š์œผ๋ฉด ์กฐ์ž‘์ด ํ—ˆ์šฉX.
never : ๋„๋‹ฌํ•  ์ˆ˜ ์—†๋Š” ์ฝ”๋“œ
void : ๊ฐ’์—†์Œ

๐Ÿ‘‰ Symbol

Symbol์€ ๊ฐ์ฒด ํ”„๋กœํผํ‹ฐ์˜ ๊ณ ์œ ๊ฐ’์„ ๊ฐ€์ง„ ํ‚ค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์‚ฌ์šฉ๋จ.

// 2_1.ts
const ord = Symbol('orderId');
const myOrder = { // ๊ฐ์ฒดํ”„๋กœํผํ‹ฐ๋กœ Symbol์‚ฌ์šฉํ•˜๊ธฐ
    ord:"123"
}
console.log(myOrder['ord']); // 123 ์ถœ๋ ฅ๋จ.

๐Ÿ‘‰ null๊ณผ undefined

ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋„ null๊ณผ undefined ํƒ€์ž…์„ ๊ฐ€์ง.

null๊ณผ undefined๋ฅผ ๋ชจ๋“  ๋ณ€์ˆ˜์— ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์—ฌ๋Ÿฌํƒ€์ž…๊ณผ ์„ž์–ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ด๋‹ค.

function getName(): string|null{ ... }

null์„ ๋ช…์‹œ์ ์œผ๋กœ ์ž‘์„ฑํ•˜์—ฌ ์ฝ”๋“œ ๊ฐ€๋…์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ด.

๐Ÿ‘‰ anyํƒ€์ž…

์ˆซ์ž, ํ…์ŠคํŠธ, ๋ถ€์šธ ๋˜๋Š” Customer๊ฐ™์€ ์ปค์Šคํ…€ํƒ€์ž…๊ฐ’์„ ํ• ๋‹น.

anyํƒ€์ž…์„ ์‚ฌ์šฉํ•˜๋ฉด ํƒ€์ž… ์ฒดํฌ์˜ ์žฅ์ ์„ ์žƒ๊ณ  ์ฝ”๋“œ ๊ฐ€๋…์„ฑ๋„ ๋–จ์–ด์ ธ ๋˜๋„๋ก ์‚ฌ์šฉ X

๐Ÿ‘‰ never ํƒ€์ž…

์ ˆ๋Œ€ ๋ฐ˜ํ™˜์„ ํ•˜์ง€ ์•Š๋Š” ํ•จ์ˆ˜์— ์‚ฌ์šฉ.
ex) ์ ˆ๋Œ€๋กœ ์‹คํ–‰์ด ์ข…๋ฃŒ๋˜์ง€ ์•Š๋Š” ํ•จ์ˆ˜๋‚˜ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด์„œ๋งŒ ์กด์žฌํ•˜๋Š” ํ•จ์ˆ˜

//2_2.ts
const logger = () =>{
    while(true){ // ํ•จ์ˆ˜๊ฐ€ ์ข…๋ฃŒ๋˜์ง€ ์•Š๊ณ  ๊ณ„์† ์‹คํ–‰๋จ.
        console.log('์„œ๋ฒ„๊ฐ€ ์‹คํ–‰ ์ค‘ ์ž…๋‹ˆ๋‹ค.');
    }
}

์ƒ์„ฑํ•œ ํ•จ์ˆ˜๋ฅผ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ•จ์ˆ˜ ํ‘œํ˜„์‹์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ ์ด ์—ญ์‹œ ํƒ€์ž…์„ ๋ฐ˜ํ™˜ํ•จ.
์œ„ ํ•จ์ˆ˜์˜ ํƒ€์ž…์€ never์ž…๋‹ˆ๋‹ค.

๐Ÿ‘‰ void ํƒ€์ž…

๋ณ€์ˆ˜ ์„ ์–ธ์ด ์•„๋‹ˆ๋ผ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š๋Š” ํ•จ์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋Š”๋ฐ ์‚ฌ์šฉ.

function logError(errorMessage: string): void{
    console.error(errorMessage);
}

never์™€ ๋‹ค๋ฅด๊ฒŒ voidํ•จ์ˆ˜๋Š” ์‹คํ–‰์„ ์™„๋ฃŒํ•˜์ง€๋งŒ ๊ฐ’์„ ๋ฐ˜ํ™˜ ์•ˆํ•จ.

โ— ๋Ÿฐํƒ€์ž„ ์ค‘์— ํ•จ์ˆ˜ ๋ณธ๋ฌธ์— return์ด ์—†๋Š”๊ฒฝ์šฐ undefined๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š”๋ฐ void๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด์™€ ๊ฐ™์€ ์‹ค์ˆ˜๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ‘‰ ๊ฒ€์‚ฌ๊ธฐ๊ฐ€ ์œ ์ถ”ํ•œ๋‹ค.

ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์˜ ํƒ€์ž…ํ‘œ๊ธฐ๋Š” ์„ ํƒ์‚ฌํ•ญ์ด๊ธฐ ๋•Œ๋ฌธ์— ํ‘œ๊ธฐ๊ฐ€ ์—†์œผ๋ฉด ๊ฒ€์‚ฌ๊ธฐ๋Š” ํƒ€์ž…์„ ์œ ์ถ”ํ•œ๋‹ค.

// 2_3.ts
const age = 25;
function getTax(income: number):number{
    return income * 0.15;
}
let yourTax = getTax(50000);

age์™€ yourTax์˜ ๊ฒฝ์šฐ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํƒ€์ž…์„ ์œ ์ถ”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ตณ์ด ํƒ€์ž…์„ ๋‹ค์‹œ ํ‘œ๊ธฐํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๐Ÿ‘‰ ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด์„ ํƒ€์ž…์œผ๋กœ ์‚ฌ์šฉ

๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด์„ ํƒ€์ž…์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

let name3: 'John Smith';

์ด ๋ณ€์ˆ˜๋Š” John Smith๋ผ๋Š” ๋ฆฌํ„ฐ๋Ÿด ํƒ€์ž…์„ ๊ฐ€์ง€๊ณ , ๋ณ€๊ฒฝ๋˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

let name3: 'John Smith';
name3 = 'Mary Lolu'; // error: Type 'Mary Lolu'is not assignable to type "John Smith"

๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ๋“œ๋ฏˆ๊ณ , ์œ ๋‹ˆ์˜จ๊ณผ ์—ด๊ฑฐํƒ€์ž…์„ ์‚ฌ์šฉํ•จ.

๐Ÿ‘‰ ํƒ€์ž…ํ™•์žฅ

์ดˆ๊ธฐ๊ฐ’ ์—†์ด ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ anyํƒ€์ž…์œผ๋กœ ์œ ์ถ”ํ•˜๋Š”๋ฐ ์ด์ฒ˜๋Ÿผ ์œ ์ถ”ํ•˜๋Š” ๊ฒƒ์„ ํƒ€์ž…ํ™•์žฅ์ด๋ผ๊ณ  ํ•จ.

let productId;productId = null;productId = undefined;

ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” anyํƒ€์ž…์œผ๋กœ ์œ ์ถ”ํ•˜๊ณ , null๊ณผ undefined๊ฐ’์— ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ productId์˜ ํƒ€์ž…์€ any๊ฐ€๋ฉ๋‹ˆ๋‹ค.

-- strictNullCheck ์˜ต์…˜์„ ํ†ตํ•ด ์ •ํ•ด์ง„ ๋ณ€์ˆ˜์— null์ด ์ž…๋ ฅ๋˜๋Š”๊ฑธ ๋ง‰์Šต๋‹ˆ๋‹ค.
์ฝ”๋“œ ์Šค๋‹ˆํŽซ์—์„œ ์œ„ ์˜ต์…˜์„ ์ ์šฉํ•˜๋ฉด productId ํƒ€์ž…์€ number๊ฐ€ ๋˜๋ฉฐ, ๋‘๋ฒˆ์งธ์™€ ์„ธ๋ฒˆ์งธ์ค„์€ ์ปดํŒŒ์ผ์ด ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
undefined๊ฐ’์„ ์žก๋Š”๋ฐ๋„ ๋„์›€๋จ.

let productId;productId = null; // ์ปดํŒŒ์ผ์˜ค๋ฅ˜productId = undefined; // ์ปดํŒŒ์ผ ์˜ค๋ฅ˜

๐ŸŒ 2.1.2 ํ•จ์ˆ˜ ๋ณธ๋ฌธ ๋‚ด ํƒ€์ž…์„ ์–ธ

ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ํ•จ์ˆ˜์™€ ํ•จ์ˆ˜ํ‘œํ˜„์‹์€ ํŒŒ๋ผ๋ฏธํ„ฐ ํƒ€์ž…๊ณผ ๋ฐ˜ํ™˜๊ฐ’์„ ๋ช…์‹œ์ ์œผ๋กœ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค.

// 2_4.js
function calcTax(state, income, dependents){    
  if(state ==='NY') return income * 0.06 - dependents * 500;    
  else if(state ==='NJ') return income * 0.05 - dependents * 300;
}
// let tax = calcTax('NJ', 50000, 2); // 1900
let tax = calcTax('NJ', 50000, 'two'); // NaNconsole.log(tax);

ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ์ „์—๋Š” ์œ„ ์ฝ”๋“œ์˜ ๋ฌธ์ œ์ ์„ ์•Œ ์ˆ˜ ์—†๋‹ค.

function calcTax(state:string, income:number, dependents:number):number{    
  if(state ==='NY') return income * 0.06 - dependents * 500;    
  else if(state ==='NJ') return income * 0.05 - dependents * 300;
}
// let tax:number = calcTax('NJ', 50000, 'two'); 
// Type Errorlet tax:string = calcTax('NJ', 50000, 'two'); console.log(tax);

๋ฐ˜ํ™˜๊ฐ’์€ number์ด๊ธฐ ๋•Œ๋ฌธ์— tax๊ฐ€ ์ˆซ์ž๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด, ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์˜ค๋ฅ˜๋ฅผ ๋ณด๋‚ด ํƒ€์ž…์‹ค์ˆ˜๋ฅผ ๋ฐฉ์ง€.

โ— state๊ฐ€ NY์™€ NJ์— ๋Œ€ํ•ด์„œ๋งŒ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— undefined๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ ๊ฒฝ๊ณ ๋ฉ”์„ธ์ง€๋Š” ํ‘œ์‹œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์•„๋ž˜์™€ ๊ฐ™์ด ์ˆ˜์ •ํ•˜์—ฌ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

function calcTax(state:string, income:number, dependents:number) : number | undefined

๐ŸŒ 2.1.3 ์œ ๋‹ˆ์˜จ ํƒ€์ž…

์œ ๋‹ˆ์˜จ์€ OR์—ฐ์‚ฐ์ž์ฒ˜๋Ÿผ ๋ณ€์ˆ˜์— ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ํƒ€์ž…์ด ์—ฌ๋Ÿฌ๊ฐœ์ธ ๊ฒฝ์šฐ ์‚ฌ์šฉ.

let padding: string | number

any๋ฅผ ์‚ฌ์šฉํ•ด๋„๋˜์ง€๋งŒ, ๊ทธ๋Ÿฌ์ง€ ์•Š๋Š” ์ด์œ ๊ฐ€ ์žˆ๋‹ค.

์•„๋ž˜ ์ฝ”๋“œ๋Š” ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์— ์™ผ์ชฝ ํŒจ๋”ฉ๊ฐ’์„ ์ถ”๊ฐ€ํ•˜๋Š” ํ•จ์ˆ˜.
์ˆซ์žํƒ€์ž…์ด๋ฉด value ์•ž์— ๊ณต๋ฐฑ ๋ฌธ์ž๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , ๋ฌธ์ž์—ด ํƒ€์ž…์ด๋ฉด padding์˜ ๋ฌธ์ž์—ด์„ ์ด์–ด ๋ถ™์—ฌ ๋ฐ˜ํ™˜.

//2_6.ts, 2_7
function padLeft(value: string, padding: any):string{    
  if(typeof padding === 'number'){        
    return Array(padding + 1).join('') + value;    
  }    
  if(typeof padding === 'string'){        
    return padding + value;    
  }    
  throw new Error(`Expected string or number, got '${padding}'`);
}
console.log(padLeft('Hello World', 4)); // Hello World ๋ฐ˜ํ™˜
console.log(padLeft('Hello World', 'John says')); // John says Hello World
console.log(padLeft('Hello World', true)); // ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜ ๋ฐœ์ƒ

๐Ÿ‘‰ typeof์™€ instanceof ํƒ€์ž…๊ฐ€๋“œ

์กฐ๊ฑด๋ฌธ์œผ๋กœ ๋ณ€์ˆ˜ ํƒ€์ž…์„ ์„ธ๋ถ„ํ™”ํ•˜๋Š” ๊ฒƒ์„ ํƒ€์ž… ์ถ•์†Œ๋ผ๊ณ  ํ•œ๋‹ค.

2.5์—์„œ typeof ํƒ€์ž…๊ฐ€๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ๋‘˜ ์ด์ƒ์˜ ํƒ€์ž…(number | undefined)์„ ํ—ˆ์šฉํ•˜๋„๋ก ๋ฒ”์œ„๋ฅผ ์ถ•์†Œํ–ˆ์Šต๋‹ˆ๋‹ค.

instanceof ๋Š” ์ปค์Šคํ…€ ํƒ€์ž…๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ๋จ. ์‹ค์ œ ๊ฐ์ฒด ํƒ€์ž…์„ ํ™•์ธํ•จ.

typeof๋Š” ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ๋‚ด์žฅ ํƒ€์ž…์— ์‚ฌ์šฉ๋˜๋ฉฐ, instanceof๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋งŒ๋“  ํƒ€์ž…์— ์‚ฌ์šฉ๋œ๋‹ค๋Š” ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค.

function padLeft2_8(value: string, padding: string | number):string{    
  if(typeof padding === 'number'){        
    return Array(padding + 1).join('') + value;    
  }    
  if(typeof padding === 'string'){        
    return padding + value;    
  }
}
// console.log(padLeft2_8('Hello World', true)) // ์ปดํŒŒ์ผ์˜ค๋ฅ˜

string๊ณผ number ์œ ๋‹ˆ์˜จ์œผ๋กœ ๋ฐ”๊พธ์–ด ์˜ˆ์™ธ์ฒ˜๋ฆฌ์˜ ํ•„์š”์„ฑ์ด ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค.
์œ„ ์ฝ˜์†”๋ฌธ ์ฒ˜๋Ÿผ ์ž…๋ ฅ ์‹œ true์— ๋นจ๊ฐ„์ค„์ด ๋„์ด๋ฉด์„œ ์ปดํŒŒ์ผ์˜ค๋ฅ˜ ๋ฐœ์ƒ.

โ— ๋ณ€์ˆ˜๊ฐ€ ๋‘ ๊ฐœ ์ด์ƒ์˜ ํƒ€์ž…์„ ๊ฐ€์งˆ ๊ฒฝ์šฐ any๋ง๊ณ  ์œ ๋‹ˆ์˜จ ์‚ฌ์šฉ.

let padding: string | number

๋ณ€์ˆ˜๋ฅผ ํƒ€์ž…๋ณ„๋กœ ๋‚˜๋ˆ ์„œ ์„ ์–ธ์ด ๊ฐ€๋Šฅ

let paddingStr: string | let paddingNum: number;

๐Ÿ‘‰ neverํƒ€์ž…

function paddingLeft2_9(value: string, padding: string | number): string{    
  if(typeof padding === 'number') return Array(padding+1).join('')+value;    
  if(typeof padding === 'string') return padding + value;    
  else return padding; // else๋ธ”๋ก์€ ์‹คํ–‰์•ˆ๋จ.
}

neverํƒ€์ž…์€ ์œ„์—์„œ ๋งํ–ˆ๋“ฏ์ด ์–ด๋–ค ํƒ€์ž…๊ณผ๋„ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ํƒ€์ž….
๋…ผ๋ฆฌ์ ์œผ๋กœ ๋๊นŒ์ง€ ์‹คํ–‰๋  ์ˆ˜ ์—†๋Š” ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜ ๊ฐ’์€ neverํƒ€์ž…์ด ๋ฉ๋‹ˆ๋‹ค.

์œ„ ์ฝ”๋“œ์˜ ๊ฒฝ์šฐ string | number ์™ธ์˜ ํƒ€์ž…์€ ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— else์ ˆ์˜ padding์€ never๋กœ ์œ ์ถ”๋ฉ๋‹ˆ๋‹ค. (padding์— ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ ค ํƒ€์ž…ํ™•์ธ ๊ฐ€๋Šฅ)

๐Ÿ‘‰ ์ •๋ฆฌ

any๋ฅผ ์‚ฌ์šฉํ•˜์ง€์•Š๊ณ  ์œ ๋‹ˆ์˜จ์„ ์‚ฌ์šฉํ•˜๋ฉด ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋Ÿฐํƒ€์ž„ ๋„์ค‘ padLeft()๊ฐ€ ์ž˜๋ชป ํ˜ธ์ถœ๋œ ๊ฒฝ์šฐ ์ด๋ฅผ ๊ฐ์ง€ํ•ด ์˜ค๋ฅ˜๋ฅผ ๋ฐ”๋กœ ํ•ด๊ฒฐ๊ฐ€๋Šฅ ํ•˜๋‹ค

profile
๊นƒํ—ˆ๋ธŒ : github.com/JuneHyung

0๊ฐœ์˜ ๋Œ“๊ธ€