타입스크립트 스터디 - 4

노요셉·2021년 3월 26일
0

tsconfig.json

https://typescript-kr.github.io/pages/tsconfig.json.html

디렉토리에 tsconfig.json 파일이 있다면 해당 디렉토리가 Typescript 프로젝트의 루트가 됌.
tsconfig.json 파일은 프로젝트를 컴파일하는 데 필요한 루트 파일과 컴파일 옵션을 지정할 수 있음.

입력파일 없이 tsc 호출하면 컴파일러는 tsconfig.json 파일이 포함된 디렉토리 경로 또는 설정이 포함된 유효한 경로의 .json 파일 경로를 지정하는 --project (또는 -p) 커맨드 라인 옵션을 사용할 수 있음.

tsconfig reference

https://www.typescriptlang.org/tsconfig

  • outDir
    CompilerOptions에 outDir를 정해두면 컴파일되고 지정한 디렉토리로 file이 들어갈 것임.

  • paths
    paths를 쓰려면 baseUrl이 명시되어야 하고,
    상대적 경로를 사용해서 쓸 수 있음.
    https://www.typescriptlang.org/tsconfig#paths

extends를 이용한 설정 상속하기

https://stackoverflow.com/questions/52147201/angular-6-declare-path-for-library-in-tsconfig-lib-json

tsconfig.json 여러개 만들어서 프로젝트 구성

공통으로 사용하는 모듈의 경우 common 모듈 하나 만들어서 사용할 수 있음.
https://stackoverflow.com/questions/60896829/monorepo-with-rootdirs-produces-unwanted-sudirectories-such-as-src-in-outdi/61513685#61513685

프로젝트 구조는 다음과 같다면

├── dist
└── src
    ├── tsconfig.json
    ├── shared
    │   ├── index.ts
    │   └── tsconfig.json
    ├── backend
    │   ├── index.ts
    │   └── tsconfig.json
    └── frontend
        ├── index.ts
        └── tsconfig.json

컴파일 후 이런 구조가 될 것임.

.
├── dist
│   ├── shared
│   ├── backend
│   └── frontend
└── src

shared 모듈을 임포트할때는
tsconfig.json에 다음과같이 paths를 지정해서 import 할때는 설정한 상대경로로부터 읽어오게함.

"baseUrl": ".",
"paths": {
  "@ProjectName1/*": ["../projects/ProjectName1/src/app/modules/*"],
  "@Projectname2/*": ["../projects/Projectname2/src/app/modules/*"],
}

https://stackoverflow.com/questions/52147201/angular-6-declare-path-for-library-in-tsconfig-lib-json

모듈 해석

https://typescript-kr.github.io/pages/module-resolution.html#path-mapping

paths를 사용하는 것은 여러 개의 이전 위치를 포함한 정교한 매핑이 가능합니다.

타입스크립트 .d.ts 표기오류때문에 컴파일이 안된다면?

https://medium.com/naver-fe-platform/%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%BB%B4%ED%8C%8C%EC%9D%BC%EB%9F%AC%EA%B0%80-%EB%AA%A8%EB%93%88-%ED%83%80%EC%9E%85-%EC%84%A0%EC%96%B8%EC%9D%84-%EC%B0%B8%EC%A1%B0%ED%95%98%EB%8A%94-%EA%B3%BC%EC%A0%95-5bfc55a88bb6

typescript 라이브러리 만드는법

https://www.tsmean.com/articles/how-to-write-a-typescript-library/

monorepo 정리

https://www.awesomezero.com/development/lerna_and_yarn_workspace/

partial

https://ithub.tistory.com/m/239

namespace

https://lts0606.tistory.com/25#:~:text=%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%97%90%EC%84%9C%20%EB%84%A4%EC%9E%84%EC%8A%A4%ED%8E%98%EC%9D%B4%EC%8A%A4,%EC%88%98%20%EC%9E%88%EA%B2%8C%20%ED%95%B4%EC%A3%BC%EB%8A%94%20%EA%B0%9C%EB%85%90%EC%9D%B4%EB%8B%A4.

typescript playground : https://www.typescriptlang.org/play

profile
서로 아는 것들을 공유해요~

0개의 댓글