TypeScript에서 IF문과 Const문을 어떻게 같이 사용할 수 있을까요?

조회수 712회
if (process.platform == 'win32'){
    const os: string = "저는 win32 입니다."
} else if (process.platform == 'linux'){
    const os: string = "저는 linux입니다."
} else {
  const os: string = "Unknowns Target 입니다."
}

console.log(os)

이렇게 하고 싶은데, const가 if문 블록내에서만 유효해서 바깥에서 사용할 수 없습니다.

어떻게 해결할 수 있을까요?

2 답변

  • 좋아요

    1

    싫어요
    채택 취소하기

    저는 보통 저런 경우 아래와 같이 작성합니다. mutable한 변수는 IIFE 내에서만 사용하고, 밖으로 내보낼 때에는 immutable하게 할당합니다.

    const os = (() => {
      switch (process.platform) {
        case 'win32': return "저는 win32 입니다."
        case 'linux': return "저는 linux 입니다."
        default: return "Unknowns Target 입니다."
      }
    })()
    
    
    • (•́ ✖ •̀)
      알 수 없는 사용자
    • 익명함수를 사용하는 방법이 있었네요. 감사합니다. dbwodlf3 2020.7.20 20:13
  • 혹시 이렇게 구현하면 안되는 이유가 있나요?

    let tmp = "Unknowns Target 입니다."
    if (process.platform == 'win32'){
        tmp  = "저는 win32 입니다."
    } else if (process.platform == 'linux'){
        tmp  = "저는 linux입니다."
    }
    const os: string = tmp
    console.log(os)
    

    TypeScript 에 대해 잘 알지 못하여서 const가 반드시 저렇게 쓰여야 하는 상황인지 궁금합니다.

    혹시 문제가 된다면 알려주시기 바랍니다.

    감사합니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자
    • 크게 상관은 없지만, 깔끔하게 하고 싶어서 그랬습니다. 그래도 답변 감사합니다. dbwodlf3 2020.7.20 20:13

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)