ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2. Function Parameter Annotation
    Typescript 2022. 10. 13. 13:26

     

    Function Parameter
    • 파라미터 타입을 지정하지 않으면 암묵적 Any 타입 파라미터로 지정
    // 암묵적 Any 타입 파라미터
    function square (num) {
    	return num * num
    }
    
    square(5) // 가능
    square('strings') // 가능
    
    
    // 명시적 타입 파라미터
    function greeting (name: string) {
    	let temp = name * name // ERROR
    	return `Good morning, ${name}`
    }
    
    greeting(5) // 불가능
    greeting('서앶진') // 가능

     

    • 다수의 타입 파라미터를 가지는 함수는 호출 시에 파라미터 갯수와 타입을 잘 맞춰야 함
    // 다양한 파라미터
    function doSomethings (name: string, age: number, isTrue: boolean) {
    	console.log(name, age, isTrue)
    }
    
    doSomethings ('shj', 26, true) // 가능
    doSomethings ('shj') // 불가능 - 파라미터 갯수가 맞지 않음

     

    • 초기값 (기본값) 을 가지는 함수 파라미터
    • 파라미터에 초기값을 선언 ( 타입 명시를 하지 않아도 타입 추론으로 지정 )
    function tempFnc (person = 'stranger') {
        return `Hi, ${person}!`
    }
    
    tempFnc() // 가능 (출력 : Hi, stranger!)
    tempFnc('서앶진') // 가능 (출력 : Hi, 서앶진!)

     

     

    Function Return Types
    • 함수의 반환 타입 명시
    • 함수의 파라미터 뒤:타입 지정
    • Return type을 지정하지 않아도 입력된 파라미터에 따라 추론 가능
    function getDouble (num: number): number {
    	return num * num
    }

     

    • forEach, map, filter 등과 같은 함수들이 갖는 파라미터는 문맥상 타입 추론됨
    const colors = ['red', 'orange', 'yellow', 'green']
    
    function getColors () {
    	let newColors = colors.map(color => { // color: string
        	return color.toFixed() // ERROR - color is string
        	return color.toUpperCase()
        })
        
        return newColors
    }

     

    • Void 타입 반환
    • 어떠한 값도 반환하지 않는 함수
    • 아무것도 반환하지 않는 경우, 백그라운드에서 undefined 상태로 반환
    let temp: string
    function voidFnc (params: boolean): void {
    	if (params) {
        	return 'TRUE' // ERROR
            temp = 'TRUE'
        } else {
        	temp = 'FALSE'
        }
    }
    
    console.log(voidFnc(false)) // 출력: undefined

     

    • Never 타입 반환
    • 예외를 발생시키는 함수, 무엇이든 반환할 기회 절대 없음
    function makeError = (msg: string = 'TEST ERROR'): never => {
    	throw new Error(msg)
    }
    
    function makeLoop = (): never => {
    	while (true) {
        	console.log('TRUE')
        }
    }
    
    makeError()
    makeLoop()

     

     

     

     

     

     

     

     

    'Typescript' 카테고리의 다른 글

    6. Tuple & Enum  (0) 2022.10.18
    5. Union Type  (0) 2022.10.17
    4. Array Type  (0) 2022.10.17
    3. Object Type  (0) 2022.10.13
    1. Annotation Basic  (0) 2022.10.13
Designed by Tistory.