@@ -6,12 +6,24 @@ function printResult(num: number): void {
6
6
console . log ( 'Result: ' , + num ) ;
7
7
}
8
8
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
+ }
15
+
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๊ฐ ์๋ ์ ์์ ์ธ ์ฝ๋๊ฐ ์ถ๋ ฅ ๋ ๊ฒ์ด๋ค.
24
+
9
25
printResult ( add ( 1 , 2 ) ) ;
10
26
11
- // let result: Function; //์ผ๋ฐ์ ์ธ ๋ฐฉ์์ผ๋ก ํจ์ ํ์
์ ํ ๋นํ ๊ฒฝ์ฐ
12
- let result : ( a : number , b : number ) => number ; // ํ์ดํ๊ธฐ๋ก ํจ์์ ๋ฐํ ๊ฐ๊น์ง ํ ๋นํ ๊ฒฝ์ฐ
27
+ let result : ( a : number , b : number ) => number ;
13
28
result = add ;
14
- //result = printResult; // error ts(2322) -> 'void' ํ์์ 'number' ํ์์ ํ ๋นํ ์ ์์ต๋๋ค.
15
- // ํด๋น ์ค๋ฅ๋ result์ ํ์
์ number๋ก ๋ฐํ๋๋ ํจ์์ฌ์ผ๋ง ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ด๋ค. ์ฆ, printResult๋ void๊ฐ ๋ฐํ์ด๊ธฐ ๋๋ฌธ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
16
- // result = 0; //๊ฐ์ด ์ฌํ ๋น ๋๋ฉด์ 0์ผ๋ก ๊ฐ์ด ์ถ๋ ฅ๋๋ค.
17
- console . log ( result ( 1 , 2 ) ) ; // ๊ทธ๋ ๋ค๋ฉด result ๋ณ์์ ํจ์ ํ์
์ ์ง์ ํ๋ฉด ๋์ง ์์๊น?
29
+ console . log ( result ( 1 , 2 ) ) ;
0 commit comments