## 背景 以下のようなディレクトリ構造があるとする。 ```ls  . └──  src ├──  client │ └──  client.ts └──  main.ts ``` `src/main.ts`では以下のようなimport文がある。 ```ts:src/main.ts import * from "./client/client" ``` たとえ`client.ts`のパスに変化がなくても、`main.ts`のパスに変化があると相対パスが変わってしまい、importできなくなる。これを解決したい。 ## 解決策 [[TSConfig]]で[[baseUrl (tsconfig)|baseUrl]]と[[paths (tsconfig)|paths]]を指定する。 ```json:tsconfig.json { "compilerOptions": { "baseUrl": "./src", "paths": { "~/*": ["./*"], } } } ``` どのファイルでも`~`は`./src`として扱われるため以下のように書ける。 ```ts:src/main.ts import * from "~/client/client" ``` `client.ts`のパスが変わらない限り、別ファイルのimport文が失敗することはない。