ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 타입스크립트 프로그래밍-3
    프론트엔드/리엑트 2023. 2. 17. 15:17
    728x90

    타입의 관하여

    타입(type): 값과 이 값으로 할 수 있는 일의 집합

     

     

    ex1)

     

    Boolean 타입의 경우 모든 불(참과 거짓 중 하나)과 불에 수행할 수 있는 모든 연산의 집합.

     

    => 연산(||, &&, ! 등)

     

    ex2)

     

    number 타입은 모든 숫자와 숫자에 적용할 수 있는 모든 연산, 숫자에 호출할 수 있는 모든 메서드의 집합.

     

    => 연산(+,-,*,/,%,||,&&,? 등) , 메서드(.toFixed, .toPrecision, .toString 등)

     

    ex3)

     

    string타입은 모든 문자열과 문자열에 수행할 수 있는 모든 연산 문자열에 호출할 수 있는 모든 메서드의 집합.

     

    => 연산(+,||,&&,등) , 메서드(.concat, .toUpperCase 등)

     

    function plus(n) {

        return n+n

    }

     

    => plus(2)   // 4값이 출력

    => plus('p') //Nan으로 출력

     

    매개변수값의 타입을 지정해주자.

     

    function plus(n:number) {

        return n+n

    }

     

    => plus(2)   // 4값이 출력

    => plus('p') //에러 Ts2345: ' "p" ' 라는 타입의 인수는 'number' 타입의 매개변수에 할당할 수 없음 에러가 뜬다.

     

    any란?

     

    타입스크립트를 배우고 사용하게되면서 any를 많이 접할수있었다.

     

    개발자와 타입스크립트 모두 타입을 알 수 없는 상황에서는 기본 타입인 any로 가정한다.

     

    하지만 가급적 사용을 권장하지않는다.

     

    그 이유는 타입스크립트를 사용하는이유는 깐깐하게, 까다롭게 오류를 잡아주기 위해서인데,

     

    any를 사용하면 무슨 작업이든 다 할 수 있기때문에 자바스크립트와 다를 바 없고

     

    타입 검사기가 더이상 작동하지않게된다.

     

    그래서, any 대신 unknown을 사용한다.

     

    정제를 통해 ㅅ용하기 전까지는 타입스크립트가 unknown 타입의 값을 사용할 수 없게 강제한다.

     

    ex)

     

    let a : unknown = 30  // a = unknown

    let b = a ===123 // boolean

    let c = a + 10 // 에러..  a객체의 타입이 unknown임.

     

    정제과정은 typeof 와 instanceof 를 사용하여 정제해준다.

     

    if ( typeif a === 'number') {

        let d = a +10                // number

    }

     

    boolean

    타입리터럴(type literal)

    - 오직 하나의 값을 나타내는 타입

    - 모든 곳에서 일어날 수 있는 실수를 방지해 안전성을 추가로 확보해주는 강력한 언어 기능

    - 타입스크립트를 독특하게 만들어주는 기능

     

    1. 변수를 명시적으로 타입리터럴로 설정 한 경우

     

    ex) let d : boolean = true // boolean

     

    2. const를 사용하여 타입스크립트가 자동으로 변수의 타입을 리터럴로 추론하게 한 경우

     

    ex)  const c = true // true

     

    const를 사용했으므로 타입스크립트는 변수의 값이 절대 변하지 않는다고

     

    알고 해당 변수가 가질 수 있는 가장 좁은 타입으로 추론하게 된다.

    그러므로, boolean이 아닌, 가장 좁은 타입 ture로 추론해준다.

     

    ※ let 이냐 const 냐에 따라 타입스크립트가 추론하는 타입이 달라진다.

     

     

    출처: 타입스크립트 프로그래밍 책.

    728x90

    댓글

Designed by Tistory.