[TypeScript] 타입을 import export namespace 문제

2022. 12. 30. 15:15CodingTest/TypeScript Q

(문제1)

Car 와 Bike 타입을 index.ts에 만들어놨는데 서식이 복잡해서 다른 파일로 옮겨서 사용하고 싶습니다. 

코드를 다른 파일에 저장하여 index.ts에서 가져와서 변수만들 때 사용해보십시오. 

(index.ts)

type Car = {
  wheel : number,
  model : string
}
interface Bike {
  wheel : 2,
  model : string
}
더보기

타입담아둘 파일

(post.ts)

export type Car = {
  wheel : number,
  model : string
}
export interface Bike {
  wheel : 2,
  model : string
}

 가져다쓰는 파일 

(index.ts)

import {Car, Bike} from './a'

let 빠방이 :Car = { wheel : 4, model : 'Sonata' }

 

 

(문제2)

이 함수는 파라미터로 object자료 하나를 선택적으로 집어넣을 수 있고 

아무것도 return 해주지 않아야합니다. 

함수 만들 때마다 여기에 타입 일일이 붙이기 귀찮아서 그런데

이 타입을 다른 파일에 저장해두고 import 해와서 함수 만들 때마다 쓰려면 어떻게 코드를 짜야할까요

더보기

타입담아둘 파일

(post.ts)

export type ObjFunction = (a? :object) => void

가져다쓰는 파일

(index.ts)

import {ObjFunction} from './'

let 함수 :ObjFunction = function(a){
  console.log(a)
}

함수({abc : '안뇽'});

 

 

 

(문제3)

타입 중복이 너무 많이 발생합니다.

아래 코드에서 에러를 없애야합니다. 어떻게 코드를 짜면 될까요? 

(조건) type Dog, interface Dog의 타입이름 변경 금지, 파일 분할 금지

(조건) namespace 사용해보세요

type Dog = string;
interface Dog { name : string };

let dog1 :Dog = 'bark';
let dog2 :Dog = { name : 'paw' }
더보기
namespace GoodDog {
  export type Dog = string;
}
namespace BadDog {
  export interface Dog { name : string };
}

let dog1 :GoodDog.Dog = 'bark';
let dog2 :BadDog.Dog = { name : 'paw' }

1. namespace를 2개 만들고 각각 다른 타입을 담고

2. 첫째 타입은 GoodDog.Dog 이렇게 쓸 수 있고

3. 둘째 타입은 BadDog.Dog 이렇게 쓸 수 있습니다.