isolatedModulesはファイル単体でトランスパイルができるようにするためにtypescriptの記述方法に制限を加えるオプション

export type FooType = string;
export const fooConst = "foo";

index.ts

import { FooType, fooConst } from './foo.js';
export { FooType, fooConst };

上記のようにtypeも同じjavascriptで利用されている関数などと同じ形式でimportすることができる。 しかしこのような場合,index.ts単体でトランスパイルする際に何を削除してjsファイルに変換できるかわからない それを制限をかけることによってファイル単体のみを見ることによってトランスパイル可能にするためのフラグ

import { type FooType, fooConst} from './foo.js';
export { type FooType, fooConst };

import,exportするタイミングで必ずtypeをつけなければならないようにする. これをつけなくてもtscではトランスパイル可能であるが、現代では様々なトランスパイラが存在するためこちらのために必要となる(esbuild,SWC,Babel)