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์ผ๋ก ํ ๋น์ด ๋๋ค.
4
5
5
- function printResult ( num : number ) : void {
6
- console . log ( 'Result: ' , + num ) ;
7
- }
6
+ let userName : string ;
7
+ userInput = 5 ;
8
+ userInput = 'Max' ;
8
9
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 ) ;
15
11
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์ ํ์
์ ํ์ธ ํ ์ ์๋ ํ๊ฒฝ์ ์กฐ์ฑํด์ฃผ๋ฉด ๋๋ค.
24
14
25
- printResult ( add ( 1 , 2 ) ) ;
15
+ if ( typeof userInput === 'string' ) {
16
+ userName = userInput ;
17
+ }
26
18
27
- let result : ( a : number , b : number ) => number ;
28
- result = add ;
29
- console . log ( result ( 1 , 2 ) ) ;
19
+ //๊ฒฐ๋ก ์ ์ผ๋ก any๋ณด๋ค unknown์ผ๋ก ํ์
์ ํ ๋นํ๊ฒ ๋๋ฉด if๋ฌธ์ผ๋ก ๊ฒ์,๊ฒํ ๋ฅผ ํตํด์ ๊ฐ์ ์ฌํ ๋นํ๊ฑฐ๋ ํ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ ๊ฐ์์ ์ผ๋ก๋ ์ฝ๋์ ๊ฐ๋
์ฑ์ ์ผ๋ก๋ ํจ์ฌ ์์ ์ ์ธ ์ฝ๋๋ฅผ ์์ฑํ ์ ์๋ค.
0 commit comments