ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 5.30 TypeScript의 타입 포팅
    코드스테이츠 2023. 5. 30. 23:56

    JavaScript로 작성되어 있는 해당 코드들을 TypeScript로 포팅

     

    /* 작성 후 터미널에
    1. tsc src/index.ts
    2. node src/index.js
    를 입력하시면 확인할 수 있습니다. */
    
    /* boolean형 */
    let isDone = false;
    let isShow = true;
    
    console.log(isDone);
    console.log(isShow);
    
    /* 숫자형 */
    let num1 = 7;
    let num2 = 0.6878;
    
    console.log(num1);
    console.log(num2);
    
    /* 문자형 */
    let str = 'hello';
    
    console.log(str);
    
    /* 숫자형 배열의 타입을 정하는 2가지 방법 */
    let list1 = [1, 2, 3];
    let list2 = [1, 2, 3];
    
    console.log(list1);
    console.log(list2);
    
    /* 문자형 배열의 타입을 정하는 2가지 방법 */
    let list3 = ['banana', 'apple', 'mango'];
    let list4 = ['banana', 'apple', 'mango'];
    
    console.log(list3);
    console.log(list4);
    
    /* 튜플 */
    let list5 = [1, 'banana', true];
    
    console.log(list5);
    
    /* 객체형 타입을 정하는 2가지 방법 */
    let obj = {};
    let obj2 = {
      name: 'kimcoding',
      age: 20,
      isDeveloper: true,
    };
    
    console.log(obj);
    console.log(obj2);

     

    /* 작성 후 터미널에
    1. tsc src/index.ts
    2. node src/index.js
    를 입력하시면 확인할 수 있습니다. */
    
    /* boolean형 */
    let isDone: boolean = false;
    let isShow: boolean = true;
    
    console.log(isDone);
    console.log(isShow);
    
    /* 숫자형 */
    let num1: number = 7;
    let num2: number = 0.6878;
    
    console.log(num1);
    console.log(num2);
    
    /* 문자형 */
    let str: string = 'hello';
    
    console.log(str);
    
    /* 숫자형 배열의 타입을 정하는 2가지 방법 */
    let list1: number[] = [1, 2, 3];
    let list2: Array<number> = [1, 2, 3];
    
    console.log(list1);
    console.log(list2);
    
    /* 문자형 배열의 타입을 정하는 2가지 방법 */
    let list3: string[] = ['banana', 'apple', 'mango'];
    let list4: Array<string> = ['banana', 'apple', 'mango'];
    
    console.log(list3);
    console.log(list4);
    
    /* 튜플 */
    let list5: [number, string, boolean] = [1, 'banana', true];
    
    console.log(list5);
    
    /* 객체형 타입을 정하는 2가지 방법 */
    let obj: object = {};
    let obj2: { name: string; age: number; isDeveloper: boolean } = {
      name: 'kimcoding',
      age: 20,
      isDeveloper: true,
    };
    
    console.log(obj);
    console.log(obj2);

     

    출력

     

     

     

     

     

    💁‍♀️ 다음은 JavaScript를 TypeScript로 변환한 코드입니다. 알맞게 변환이 되었나요?

    let shoes: Array<string, number> = ["Nike", 78, "Asics", 34];

     

     

    🔈 해설

    정답 X

    제네릭 타입으로 배열 타입을 작성할 때, <> 안에는 하나의 인자만 들어갈 수 있습니다. 따라서 해당 코드는 알맞게 변환되지 않은 코드입니다. 따라서 해당 코드는 다음과 같은 내용의 에러를 발생하게 됩니다. Generic type 'Array<T>' requires 1 type argument(s).

    유니온 타입으로 맞게 수정

    let shoes: Array<string | number> = ["Nike", 78, "Asics", 34];

    💁‍♀️ 다음은 JavaScript를 TypeScript로 변환한 코드입니다. 알맞게 변환이 되었나요?

    let person: {name: string, age: number} = {
        name: "anna",
        age: 15,
        isDeveloper: false
    }

     

    🔈 해설

    정답 X

    객체 리터럴은 명시한 프로퍼티만 지정할 수 있습니다. 현재 명시된 프로퍼티는 nameage입니다. 따라서 isDeveloper는 명시된 속성이 아니므로 에러가 발생합니다.

    올바른 출력

    let person: {name: string, age: number, isDeveloper: boolean} = {
        name: "anna",
        age: 15,
        isDeveloper: false
    }

     

     

     

     🥨 TIL 

    첨에 무슨말인가 했는데 할수록 재밌음 타입스크립트는 이런 재미인걸까

    잘한점 코드 보고 무서워하지 않고 잘 풀었음

    개선점 오타개선, 오류보고 침착하게 다시 보기, 시간분배 개선

    배운점 타입스트립트의 타입을 작성하는 코드가 정말 한눈에 보기 좋은 코드란걸 몸으로 느꼈다. 포기하지 않고 계속 나아가길 잘했다.

     

     

    '코드스테이츠' 카테고리의 다른 글

    5.30 TypeScript의 함수 포팅  (0) 2023.05.31
    5.30 TypeScript의 함수  (0) 2023.05.30
    5.30 TypeScript의 타입  (0) 2023.05.30
    5.30 TypeScript  (0) 2023.05.30
    5.30 TypeScript 환경세팅 작성중  (0) 2023.05.30
Designed by Tistory.