@aqzhyi/tsconfig

0.5.0 • Public • Published

@aqzhyi/tsconfig

稍微花了一點時間,希望我的 tsconfig 能夠繼承在 2024 年,最流行的,也是最嚴格的 typescript ESNext 配置

pnpm i @aqzhyi/tsconfig -D
// tsconfig.json
{
  "extends": "@aqzhyi/tsconfig",
  "compilerOptions": {
    "baseUrl": ".",
    "paths": { "~/*": ["./*"] }
  },
  "include": ["./eslint.config.js", "src", "typings"],
  "exclude": ["node_modules"]
}
// for nextjs
// tsconfig.json
{
  "extends": "@aqzhyi/tsconfig",
  "compilerOptions": {
    "baseUrl": ".",
    "jsx": "preserve", // for next.js
    "paths": { "~/*": ["./*"] },
    "plugins": [{ "name": "next" }] // for next.js
  },
  "files": ["./next-env.d.ts"],
  "include": ["./eslint.config.js", "app", "typings"],
  "exclude": ["node_modules"]
}
/** also see https://www.totaltypescript.com/tsconfig-cheat-sheet */
{
  "$schema": "https://json.schemastore.org/tsconfig",
  "display": "Strictest",
  "compilerOptions": {
    "allowJs": true,
    "allowSyntheticDefaultImports": true,
    "allowUmdGlobalAccess": true,
    "allowUnreachableCode": true,
    "allowUnusedLabels": false,
    "alwaysStrict": true,
    "baseUrl": ".",
    "composite": true, // useful monorepo 告訴TypeScript要發出 .tsbuildinfo 檔案。這告訴TypeScript您的專案是monorepo的一部分,並且有助於快取建構以提高執行速度。
    "declaration": true, // useful monorepo
    "declarationMap": true, // useful monorepo
    "esModuleInterop": true,
    "exactOptionalPropertyTypes": true,
    "forceConsistentCasingInFileNames": true,
    "incremental": true,
    "inlineSources": true,
    "isolatedModules": true,
    "lib": ["dom", "dom.iterable", "esnext", "WebWorker"],
    "module": "ESNext",
    "moduleDetection": "force", // 這個選項強制 TypeScript 將所有檔案視為模組。這有助於避免「無法重新宣告區塊範圍變數」的錯誤。
    "moduleResolution": "Bundler", // 與像 Webpack、Rollup、Babel、SWC 或 ESBuild的工具捆綁,那麼 Bundler 是最佳選擇。
    "noEmit": true,
    "noFallthroughCasesInSwitch": true,
    "noImplicitAny": true,
    "noImplicitOverride": true,
    "noImplicitReturns": true,
    "noPropertyAccessFromIndexSignature": true,
    "noUncheckedIndexedAccess": true,
    "noUnusedLocals": true,
    "noUnusedParameters": false, // false: 留著看 callback 會有哪些 props 可以使用
    "pretty": true,
    "resolveJsonModule": true,
    "skipLibCheck": true,
    "sourceMap": true, // useful monorepo
    "strict": true,
    "strictBindCallApply": true,
    "strictNullChecks": true,
    "target": "ESNext",
    "useUnknownInCatchVariables": true,
    "verbatimModuleSyntax": true
  },
  "exclude": ["node_modules"]
}

Package Sidebar

Install

npm i @aqzhyi/tsconfig

Weekly Downloads

7

Version

0.5.0

License

none

Unpacked Size

5.44 kB

Total Files

4

Last publish

Collaborators

  • pleasurazy