-
Notifications
You must be signed in to change notification settings - Fork 14
/
tsconfig.json
39 lines (37 loc) · 3.07 KB
/
tsconfig.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
{
"compilerOptions": {
"target": "ES2020",
"moduleResolution": "Node",
"declaration": true,
"esModuleInterop": true,
// Best practices
"strict": true, /* Enable all strict type-checking options. */
"noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */
"strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */
"strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */
"strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */
"strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */
"noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */
"useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */
"alwaysStrict": true, /* Ensure 'use strict' is always emitted. */
"noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */
"noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */
"exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */
"noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */
"noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */
"noUncheckedIndexedAccess": true,
"noPropertyAccessFromIndexSignature": false, // This is actually loose.
"skipLibCheck": true,
// New Strict Settings
"allowUnreachableCode": false, /* Error on unreachable code */
"allowUnusedLabels": false, /* Error on unused labels */
"noImplicitOverride": true, /* Ensure overriding members are marked with override modifier */
"noEmitOnError": true, /* Do not emit outputs if any errors were reported */
"isolatedModules": true, /* Ensure each file can be safely transpiled without relying on other imports */
"forceConsistentCasingInFileNames": true, /* Ensure consistent casing in file names */
// TODO(maybe): change all type imports to explicitly say import type X from ...
// "verbatimModuleSyntax": true, /* Only allow import/export statements that are part of ES modules */
},
"include": ["src/**/*.ts"],
"exclude": ["node_modules", "dist", "examples", "tests", "eslint.config.js"]
}