{
  "compilerOptions": {
    "target": "ESNext",
    "module": "Preserve",
    "strict": true
  }
}

target

The special ESNext value refers to the highest version your version of TypeScript supports.

Changing target also changes the default value of lib.

module

You very likely want "nodenext" for modern Node.js projects and preserve or esnext for code that will be bundled.

Changing module affects moduleResolution

preserve

…this module mode best reflects the capabilities of most modern bundlers, as well as the Bun runtime.

strict

The strict flag enables a wide range of type checking behavior that results in stronger guarantees of program correctness.