Skip to content

Commit e790cab

Browse files
authored
๐Ÿ”€: Udemy/Ts/section2/29 (#33)
* ๐ŸŒฑ: README์„ ์ˆ˜์ • Github์—์„œ ์ˆ˜์ •ํ•œ ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค. * ๐ŸŒฑ: README์„ ์ˆ˜์ • Github์—์„œ ์ˆ˜์ •ํ•œ ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค. * ๐ŸŒฑ: README์„ ์ˆ˜์ • Github์—์„œ ์ˆ˜์ •ํ•œ ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค. * ๐ŸŒฑ: README์„ ์ˆ˜์ • Github์—์„œ ์ˆ˜์ •ํ•œ ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค. * ๐ŸŒฑ: README์„ ์ˆ˜์ • Github์—์„œ ์ˆ˜์ •ํ•œ ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค. * ๐ŸŒฑ: README์„ ์ˆ˜์ • Github์—์„œ ์ˆ˜์ •ํ•œ ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค. * ๐ŸŒฑ: README์„ ์ˆ˜์ • Github์—์„œ ์ˆ˜์ •ํ•œ ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค. * ๐ŸŒฑ: README์„ ์ˆ˜์ • Github์—์„œ ์ˆ˜์ •ํ•œ ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค. * ๐ŸŒฑ: README์„ ์ˆ˜์ • Github์—์„œ ์ˆ˜์ •ํ•œ ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค. * ๐ŸŒฑ: README์„ ์ˆ˜์ • Github์—์„œ ์ˆ˜์ •ํ•œ ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค. * ๐ŸŒฑ: README์„ ์ˆ˜์ • Github์—์„œ ์ˆ˜์ •ํ•œ ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค. * ๐ŸŒฑ: README์„ ์ˆ˜์ • Github์—์„œ ์ˆ˜์ •ํ•œ ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค. * ๐ŸŒฑ: README์„ ์ˆ˜์ • Github์—์„œ ์ˆ˜์ •ํ•œ ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค. * ๐ŸŒฑ: README์„ ์ˆ˜์ • Github์—์„œ ์ˆ˜์ •ํ•œ ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค. * ๐ŸŒฑ: README์„ ์ˆ˜์ • Github์—์„œ ์ˆ˜์ •ํ•œ ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค. * ๐ŸŒฑ: issue templates ์ƒ์„ฑ Github์—์„œ ์ž‘์„ฑํ•œ ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค. * ๐ŸŒฑ: pr-template ์ƒ์„ฑ Github์—์„œ ์ž‘์„ฑํ•œ ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค. * ๐ŸŒฑ: pr-template ์ˆ˜์ • Github์—์„œ ์ˆ˜์ •ํ•œ ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค. * ๐ŸŒฑ: pr-template ์ˆ˜์ • Github์—์„œ ์ˆ˜์ •ํ•œ ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค. * ๐Ÿšฉ: udemy section2์˜ 14๋ฒˆ ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ์‹ค์Šต์„ ํ–ˆ๋‹ค. * ๐Ÿšฉ: unknownํƒ€์ž…์˜ ์„ ์–ธ ๋ฐฉ์‹๊ณผ any์˜ ์ฐจ์ด ๋ถ„์„ * ๐Ÿšฉ: unknown Type์œผ๋กœ ํ• ๋‹น๋œ ๊ฐ’์„ if๋ฌธ์„ ํ†ตํ•ด ์•ˆ์ •์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์˜ˆ์‹œ
1 parent c464e9f commit e790cab

File tree

2 files changed

+38
-24
lines changed

2 files changed

+38
-24
lines changed

โ€Žsrc/app.ts

Lines changed: 14 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,19 @@
1-
function add(n1: number, n2: number): number {
2-
return n1 + n2;
3-
}
1+
let userInput: unknown; // any ์™€ ๋น„๊ต๊ฐ€ ๋˜๋Š” unknown Type
2+
//unknown Type์€ ์–ด๋–ค ํƒ€์ž…์ด ์‚ฌ์šฉ๋ ์ง€ ๋ชจ๋ฅผ ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.
3+
//any์™€์˜ ์ฐจ์ด
4+
// userName์— userInput์„ ํ• ๋‹น ํ–ˆ์ง€๋งŒ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. unknown์„ any๋กœ ๊ต์ฒดํ•˜๋ฉด ํ•ด๋‹น ์—๋Ÿฌ๋Š” ์‚ฌ๋ผ์ง„๋‹ค. ์ฆ‰, ํƒ€์ž…์ด ์ •ํ™•ํžˆ ์ •ํ•ด์ง€์ง€ ์•Š์•˜์„ ๋ฟ, any์ฒ˜๋Ÿผ ์–ด๋–ค ๊ฐ’์ด๋“  ๋ฌด์ž‘์œ„๋กœ ์‚ฌ์šฉ์„ ํ—ˆ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ๋‹ค์‹œ ๋งํ•ด์„œ typeof๋กœ ํ™•์ธ์„ ํ•ด๋ณด๋ฉด ๋งˆ์ง€๋ง‰์— ํ• ๋‹น ํ•œ ๊ฐ’์œผ๋กœ userInput์€ ๊ฐ’์ด ํ• ๋‹น ๋˜์–ด ์žˆ๋‹ค.literal Type์„ ํ™•์ธํ•˜๋ฉด ์—ฌ์ „ํžˆ unknown์œผ๋กœ ํ• ๋‹น์ด ๋œ๋‹ค.
45

5-
function printResult(num: number): void {
6-
console.log('Result: ', +num);
7-
}
6+
let userName: string;
7+
userInput = 5;
8+
userInput = 'Max';
89

9-
//์ฝœ๋ฐฑํ•จ์ˆ˜
10-
function addAndHandle(n1: number, n2: number, cd: (num: number) => void) {
11-
const result = n1 + n2;
12-
//cd(result);
13-
return cd(result); //return์œผ๋กœ ๋ฐ˜ํ™˜ ๊ฐ’ ์„ค์ •
14-
}
10+
console.log(typeof userInput);
1511

16-
const test = addAndHandle(10, 20, (result) => {
17-
console.log(result);
18-
return result;
19-
});
20-
//์ฝœ๋ฐฑํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์–ด๋–ค ์žฅ์ ์ด ์žˆ๋Š”๊ฐ€?
21-
// ํ•จ์ˆ˜ ์•ˆ์—์„œ ์ฝœ๋ฐฑ์„ ์ „๋‹ฌํ•˜๋ฉด ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋Š” ๊ฒฐ๊ณผ๊ฐ€ ์ˆซ์ž๋ผ๋Š” ๊ฒƒ์„ ์ถ”๋ก ํ•œ๋‹ค. ์ฆ‰, ํ•ด๋‹น ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋ช…์‹œ์ ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค.
22-
console.log(test); //ํ•˜์ง€๋งŒ ์ด๋ ‡๊ฒŒ log๋ฅผ ์ฐ์–ด์„œ ํ™•์ธ์„ ํ•ด๋ณด๋ฉด ์•„๋ฌด๊ฒƒ๋„ ์—†๋Š” undefined๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์™œ๋ƒ๋ฉด ๋ฐ˜ํ™˜ ํƒ€์ž…์„ void๋กœ ์ง€์ •ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
23-
//๊ทธ๋ ‡๋‹ค๋ฉด ์—ฌ๊ธฐ์„œ ๋“œ๋Š” ์˜๋ฌธ์€ addAndHandle์˜ void๋•Œ๋ฌธ์ผ๊นŒ ์•„๋‹ˆ๋ฉด cd์˜ ์ฝœ๋ฐฑํ•จ์ˆ˜์—์„œ ์•”๋ฌต์ ์œผ๋กœ ์ง€์ •ํ•œ void๋•Œ๋ฌธ์ผ๊นŒ? ์ด์œ ๋Š” ๋ฆฌํ„ฐ๋Ÿด ํƒ€์ž…์„ ํ™•์ธํ•˜๋ฉด ๋œ๋‹ค. addAndHandle์˜ ๋ฐ˜ํ™˜๋˜๋Š” ๋ฆฌํ„ฐ๋Ÿด ํƒ€์ž…์€ number์ด๋‹ค. ํƒ€์ž…์„ ์ง€์ •ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์•”๋ฌต์ ์œผ๋กœ result์˜ ํƒ€์ž…์„ ๋Œ๊ณ ์™€์„œ number๋กœ ํƒ€์ž…์ด ์ง€์ •๋œ๋‹ค. ๋”ฐ๋ผ์„œ ํ•จ์ˆ˜ ํƒ€์ž…์„ ์ง€์ •ํ•˜๊ฑฐ๋‚˜ return๊ฐ’์„ ์ง€์ •ํ•ด์ฃผ๋ฉด undefined๊ฐ€ ์•„๋‹Œ ์ •์ƒ์ ์ธ ์ฝ”๋“œ๊ฐ€ ์ถœ๋ ฅ ๋  ๊ฒƒ์ด๋‹ค.
12+
//userName = userInput; //error ts(2322) -> 'unknown' ํ˜•์‹์€ 'string' ํ˜•์‹์— ํ• ๋‹นํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
13+
//๊ทธ๋ ‡๋‹ค๋ฉด userName์— userInput ๊ฐ’์„ ํ• ๋‹น์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ? ์ง€๋‚œ ๊ฐ•์˜์—์„œ๋„ ๊ณ„์† ์–ธ๊ธ‰ํ–ˆ๋“ฏ if๋ฌธ์ด๋ผ๋Š” ์กฐ๊ฑด๋ฌธ์„ ํ†ตํ•ด์„œ userName์˜ ํƒ€์ž…์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ์กฐ์„ฑํ•ด์ฃผ๋ฉด ๋œ๋‹ค.
2414

25-
printResult(add(1, 2));
15+
if (typeof userInput === 'string') {
16+
userName = userInput;
17+
}
2618

27-
let result: (a: number, b: number) => number;
28-
result = add;
29-
console.log(result(1, 2));
19+
//๊ฒฐ๋ก ์ ์œผ๋กœ any๋ณด๋‹ค unknown์œผ๋กœ ํƒ€์ž…์„ ํ• ๋‹นํ•˜๊ฒŒ ๋˜๋ฉด if๋ฌธ์œผ๋กœ ๊ฒ€์ˆ˜,๊ฒ€ํ† ๋ฅผ ํ†ตํ•ด์„œ ๊ฐ’์„ ์žฌํ• ๋‹นํ•˜๊ฑฐ๋‚˜ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€์‹œ์ ์œผ๋กœ๋„ ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์ ์œผ๋กœ๋„ ํ›จ์”ฌ ์•ˆ์ •์ ์ธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

โ€Žsrc/functions.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
function add(n1: number, n2: number): number {
2+
return n1 + n2;
3+
}
4+
5+
function printResult(num: number): void {
6+
console.log('Result: ', +num);
7+
}
8+
9+
function addAndHandle(n1: number, n2: number, cd: (num: number) => void) {
10+
const result = n1 + n2;
11+
return cd(result);
12+
}
13+
14+
const test = addAndHandle(10, 20, (result) => {
15+
console.log(result);
16+
return result;
17+
});
18+
19+
console.log(test);
20+
printResult(add(1, 2));
21+
22+
let result: (a: number, b: number) => number;
23+
result = add;
24+
console.log(result(1, 2));

0 commit comments

Comments
ย (0)