ABOUT ME

-

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

    number

    let a = 1234                      // number

    var b = Infinity * 0.10       // number

    const c = 5678                // 5678

    let e : number = 100      // number

    let f : 26.218 = 26.218  // 26.218

    let g : 26.218 = 10       // 에러 TS2322: '10' 타입을 '26.218'타입에 할당할 수 없음.

     

    1. 타입스크립트가 값이 number임을 추론하게 해준다(a,b)

    2. const는 number의 값이 특정값임을 타입스크립트가 추론하게 한다.(c)

    3. 값이 number임을 명시적으로 타입스크립트에 알린다(e)

    4. 타입스크립트에 값이 특정 number임을 명시적으로 알린다(f,g)

     

    숫자분리자 : 긴 숫자를 처리할 때 사용한다

    let one = 1_000_000 // 1000000과 같다

     

    bigint

    bigint는 자바스크립트와 타입스크립트에 새로 추가된 타입.

    라운딩 관련 에러 걱정 없이 큰 정수를 처리할 수 있다.

    number는 2의 53승 까지 표현가능하지만,bigint는 더 큰 수도 표현할 수 있다.

    덧셈,뺄셈,곱셈,나눗셈,비교 등의 연산을 지원한다.

     

    let a = 1234n             // bigint

    const b = 5678n        // 5678n

    var c = a+b               // bigint

    let d = a < 1235        // boolean

    let e = 88.5n             // 에러 TS1353 : bigint 리터럴은 반드시 정수여야 함

    let f  : bigint = 100n  // bigint

    let g : 100n = 100n  // 100n

    let h : bigint = 100   // 에러 TS2322 : '100' 타입은 'bigint' 타입에 할당할 수 없음

     

    boolean과 number와 같이 선언하는 방법이 같다.

    가능하면, 타입스크립트가 타입을 추론하게 만드는게 좋다.

     

    String

    string은 모든 문자열의 집합으로 연결(+),  슬라이스(.slice) 등의 연산을 수행한다.

     

    let a = 'hello'                     //string

    var b =  'billy'                   //string 

    const c = '!'                     //  ' ! '

    let d = a + ' '  + b + c      // string

    let e : string  = 'zoom'   //  string

    let f : 'john' = 'john'       //  'john'

    let g : 'john' = 'zoe'      // 에러 TS2322 : 'zoe' 타입을 'john' 타입에 할당할 수 없음.

     

    boolean과 number처럼 선언하는 방법이 같다.

    가능하면, 타입스크립트가 string 타입을 추론하게 만드는게 좋다.

     

    Symbol

    ES2015에 새로 추가된 기능이다. 객체와 맵에서 문자열 키를 대신하는 용도로 사용된다.

    심벌키를 사용하여 사람들이 잘 알려진 키만 사용하도록 강제할 수 있어, 잘못 설정하는 실수를 방지한다.

     

    let a = Symbol('a')                   // symbol

    let b : symbol = Symbol('b')    // symbol

    var c = a ===b                       // boolean

    let d = a + 'x'                         //에러 TS2469 : '+' 연산을 'symbol' 타입에 적용할 수 없음

     

    만들어진 symbol은 고유(unique)하여 다른 symbol과 == 또는 ===로

    비교했을 때 같지 않다고 판단된다.(같은 이름으로 다른 symbol을 만들어도 마찬가지)

    타입스크립트는 symbol타입으로 추론하거나 명시적으로 unique symbol로 정의할 수 있다.

     

    const e = Symbol('e')                             // typeof e

    const f: unique symbol = Symbol('f')     // typeof f

    let g : unique symbol = Symbol('f')       // 에러 TS1332 : 'unique symbol' 타입은 반드시 'const'여야 함

     

    let h = e ===e //boolean

    let i = e  e === f // 에러 TS2367 : 'unique symbol' 타입은 서로 겹치는 일이 없으므로 이 비교문의 결과는 항상 'false'

     

    ● 결과

     

    1. 새 symbol을 선언하고 const 변수에 할당하면 타입스크립트가 unique symbol 타입으로 추론한다.

        코드 편집기에서는 'type of 변수명' 형태로 보여줄 것이다.

     

    2. const 변수의 타입을 unique symbol로 명시적으로 정의할 수 있다.

     

    3. unique symbol은 자신과 항상 같다.

     

    4. 타입스크립트는 컴파일 타임에 unique symbol이 다른 unique symbol과 같지 않을 것이라는 사실을 알 수 있다.

     

     

    728x90

    '프론트엔드 > 리엑트' 카테고리의 다른 글

    리액트 Formik / Yup  (0) 2023.06.26
    usequery란(querykey, queryfunction)?  (0) 2023.03.03
    타입스크립트 프로그래밍-3  (0) 2023.02.17
    타입스크립트 프로그래밍-2  (0) 2023.02.14
    타입스크립트 프로그래밍-1  (0) 2023.02.14

    댓글

Designed by Tistory.