ASD14's reusable TypeScript configurations.
npm install --save-dev @asd14/ts-config typescript@^5
In your tsconfig.json
, extend the desired configuration:
{
"extends": "@asd14/ts-config/targets/react.json"
}
There are 3 configurations, each tailored for a specific target environment:
node
, react
and ink
.
All 3 targets extend a common set of rules:
{
"allowImportingTsExtensions": true,
"allowJs": true,
"checkJs": true,
"declaration": true,
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"incremental": true,
"moduleDetection": "force",
"noFallthroughCasesInSwitch": true,
"noImplicitOverride": true,
"noImplicitReturns": true,
"noPropertyAccessFromIndexSignature": true,
"noUncheckedIndexedAccess": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"removeComments": false,
"resolveJsonModule": true,
"skipDefaultLibCheck": true,
"skipLibCheck": true,
"sourceMap": true,
"strict": true
}
// @asd14/ts-config/targets/node.json
{
"module": "nodenext",
"moduleResolution": "nodenext",
"target": "es2022",
"lib": ["es2023"],
"types": ["node"]
}
// @asd14/ts-config/targets/react.json
{
"module": "esnext",
"moduleResolution": "bundler",
"target": "esnext",
"jsx": "preserve",
"lib": ["dom", "dom.iterable", "esnext"]
}
// @asd14/ts-config/targets/ink.json
{
"module": "esnext",
"moduleResolution": "nodenext",
"target": "esnext",
"jsx": "preserve",
"lib": ["es2023", "dom"],
"types": ["node"]
}
This package requires and assumes you already installed:
"peerDependencies": {
"typescript": "^5"
},
MIT