๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ126

์ œ๋„ค๋ฆญ ์ œ๋„ค๋ฆญ(Generic) ํด๋ž˜์Šค๋‚˜ ํ•จ์ˆ˜, ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋‹ค์–‘ํ•œ ํƒ€์ž…์œผ๋กœ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅ ์„ ์–ธ ํ•  ๋•Œ๋Š” ํƒ€์ž… ํŒŒ๋ผ๋ฏธํ„ฐ๋งŒ ์ž‘์„ฑํ•˜๊ณ , ์ƒ์„ฑํ•˜๋Š” ์‹œ์ ์— ์‚ฌ์šฉํ•˜๋Š” ํƒ€์ž… ๊ฒฐ์ • function getSize(arr:number[] | string[]):number{ return arr.length; } const arr1=[1,2,3]; getSize(arr1); const arr2=["a","b","c"]; getSize(arr2); //๋งค๊ฐœ๋ณ€์ˆ˜์˜ ํƒ€์ž…๋งŒ ๋ฐ”๊พธ๊ณ  ๋™์ผํ•œ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์œผ๋ฉด, ํ•จ์ˆ˜ ์˜ค๋ฒ„๋กœ๋“œ ๋˜๋Š” ์œ ๋‹ˆ์˜จ ํƒ€์ž… ์‚ฌ์šฉํ•˜๊ธฐ //๊ณ„์† ํƒ€์ž…์ด ๋ˆŒ์–ด๋‚˜๋Š” ๊ฒฝ์šฐ ์ œ๋„ค๋ฆญ ์‚ฌ์šฉ //์‚ฌ์šฉ: T๋Š” ์–ด๋–ค ํƒ€์ž…์„ ์ „๋‹ฌ๋ฐ›์•„์„œ ํ•ด๋‹น ํ•จ์ˆ˜์—์„œ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•จ function getSize2(arr:T[]):number{ retu.. 2023. 1. 3.
ํด๋ž˜์Šค ํด๋ž˜์Šค ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋Š” ๋ฏธ๋ฆฌ ์„ ์–ธํ•ด์ฃผ์–ด์•ผ ํ•จ class Car{ color:string; //ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ๋ฉค๋ฒ„๋ณ€์ˆ˜๋Š” ๋ฏธ๋ฆฌ ์„ ์–ธํ•ด์ฃผ์–ด์•ผ ํ•จ constructor(color:string){ this.color=color; } start(){ console.log("start"); } } const bnw=new Car("red"); ๋ฉค๋ฒ„ ๋ณ€์ˆ˜ ๋ฏธ๋ฆฌ ์„ ์–ธํ•˜์ง€ ์•Š๋Š” ๋ฐฉ๋ฒ• -> ์ ‘๊ทผ ์ œํ•œ์ž ๋˜๋Š” readonlyํ‚ค์›Œ๋“œ ์ด์šฉ class Car2{ constructor(public color:string){ this.color=color; } start(){ console.log("start"); } } class Car3{ constructor(readonly color:string){ this... 2023. 1. 3.
๋ฆฌํ„ฐ๋Ÿด, ์œ ๋‹ˆ์˜จ/๊ต์ฐจ ํƒ€์ž… ๋ฆฌํ„ฐ๋Ÿด ํƒ€์ž…(Literal Types) const: ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๊ฐ’ ์„ ์–ธ ํ•  ๋•Œ let: ๋ณ€ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’ ์„ ์–ธ ํ•  ๋•Œ ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด ํƒ€์ž…: ์ •ํ•ด์ง„ string ๊ฐ’์„ ๊ฐ€์ง„ ๊ฐ’ const userName1="Bob"; //๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด ํƒ€์ž…: ์ •ํ•ด์ง„ string๊ฐ’์„ ๊ฐ€์ง„ ๊ฐ’ let userName2="Tom"; let userName3:string | number="Tom"; //๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ํƒ€์ž… ๋ช…์‹œ ํ•˜๊ธฐ type Job="police"|"developer" |"teacher"; interface User{ name:string; job:Job; } const user: User = { name:"Bob", job:"developer", }; ์œ ๋‹ˆ์˜จ ํƒ€์ž…(Union Types) |(์„ธ๋กœ ์ค„) inter.. 2023. 1. 3.
ํ•จ์ˆ˜ ํ•จ์ˆ˜ ํ˜•ํƒœ function add(num1:number, num2:number){ return num1+num2; } function isAdult(age:number):boolean{ return age>10; } ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋„ optional๋กœ ์ง€์ • ๊ฐ€๋Šฅ(๋‹จ, ํƒ€์ž… ๋ช…ํ™•ํ•˜๊ฒŒ ๋ช…์‹œํ•ด์ฃผ์–ด์•ผ ํ•จ) function hello(name?:string){ return `Hello, ${name || "world"}`; } const result=hello(); const result2=hello("Sam"); //์ฃผ์˜์ : optional์ธ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๋’ค์— ๋ฐฐ์น˜ํ•ด์•ผ ํ•จ function hello2(name:string, age?:number):string{ if(age!==undefined){ return `.. 2023. 1. 3.