티스토리 뷰

목차

    반응형

    'Timeout' 형식은 'number' 형식에 할당할 수 없습니다.ts(2322)




    number 숫자로 변경할 때 여러 에러 메시지가 발생하는데요. 간단히 + 단한연산자를 사용하거나 Number('문자열') 처럼 Number 함수를 사용하면 해결됩니다.


    private testNumber: number | undefined;
    var testVar = '100';

    testNumber = +testVar;



    위와 같이 typescript에서는 + 단항연산자를 사용할 수 있습니다.

    자바스크립트에서 parseInt 또는 parseFloat 함수를 사용할 수 있는데, parseInt (null)은 NaN을 반환하지만 +null은 0을 반환하므로 위와 같이 + 단항연산자를 사용하는 것이 편리할 수도 있습니다.


    var x = " ";
    var y = +x; // y = 0
    var z = parseInt(x); // y = NaN



    또한, 문자열에 문자와 숫자가 섞여있다면 Number() 함수를 이용해 NaN 여부를 확인할 수도 있습니다.


    Number('1234'); // 1234
    Number('1a2b'); // NaN



    정리하면 타입스크립트에서 문자열을 숫자로 변경하는 방법은 총 3가지입니다.


    1. parseInt : 문자열을 파싱하여 정수를 리턴 - 0x로 시작하면 16진수, 0으로 시작하면 8진수, 그외에는 10진수로 간주
    2. parseFloat : 문자열을 부동소수점으로 리턴 - 숫자면 숫자, 숫자가 아닌 것으로 시작하면 NaN(isNaN 필수), 숫자로 시작하면 숫자로 끝날때까지를 반환
    3. + : 부동 소수점으로 문자열을 리턴 - 구문이 매우 짧다는 것이 특징


    다시, 10진수를 기준으로 typescript 소스를 정리하면 이렇습니다. (자바스크립트도 호환됨)


    const str = '16';

    // 두번째 인자를 생략하면 10 진수로 변환
    const num1 = parseInt(str);

    // 두번째 파라미터를 지정해도 OK
    const num2 = parseInt(str, 10);

    // 앞에 +를 붙여서 변환 가능
    const num3 = +str;

    // Number() 생성자 인수로 전달
    const num4 = Number(str);



     string

     number

     '16'

     16

     '016'

     16

     '-16'

     -16

     '-016'

     -16

     '16 .5 '

     16.5

     '016.5'

     16.5

     '-16.5'

     -16.5

     '-016.5'

     -16.5


    string to number 변경 방법은 여기까지고요. 아래 타입스크립트 관련 글도 참고해 주세요.


    관련 글

    TypeScript 7031 바인딩 요소 '인자' 암시적으로 any 형식이 있습니다

    TypeScript 강의 3. 자바스크립트 버전과 ECMAScript

    TypeScript 강좌 4. 호환성 tsconfig.json

    반응형