- New Angular 20 compiler option:
typeCheckHostBindings
- New ESLint rule:
@typescript-eslint/no-unsafe-type-assertion
- Add support for Deno configuration
- Configure TypeScript ESLint type checking automatically
- New ESLint rules:
@typescript-eslint/no-unsafe-argument
@typescript-eslint/no-unsafe-assignment
@typescript-eslint/no-unsafe-call
@typescript-eslint/no-unsafe-member-access
@typescript-eslint/no-unsafe-return
- Better support for ESLint flat config
-
Support for Biome. Initial rules:
noDoubleEquals
noExplicitAny
noImplicitAnyLet
noNonNullAssertion
useArrowFunction
useForOf
useOptionalChain
useTemplate
Note that some options are already included in the
recommended
preset, so they are not added if the preset is enabled, to keep configuration concise.
- Remove
allowExpression
option in@typescript-eslint/explicit-function-return-type
as it is less noisy now - Enforce sub options if
tsconfig.json
extends another one - Fix detection of type checked lint in
eslint.config.js
New lint rules:
@typescript-eslint/strict-boolean-expressions
@typescript-eslint/restrict-template-expressions
@typescript-eslint/prefer-optional-chain
prefer-arrow-callback
@typescript-eslint/prefer-for-of
Only add TypeScript ESLint rules which require type checking in configurations were it is enabled.
Enforce lint rules sub-options.
- Partial support for ESLint 9 new flat config
New lint rules:
prefer-template
@typescript-eslint/explicit-function-return-type
(replaces@typescript-eslint/explicit-module-boundary-types
)@typescript-eslint/prefer-nullish-coalescing
@typescript-eslint/use-unknown-in-catch-callback-variable
@typescript-eslint/no-non-null-assertion
@typescript-eslint/restrict-plus-operands
- New ESLint rule:
eqeqeq
- Check Git status is clean before doing anything
- Now checking if
@typescript-eslint/eslint-plugin
is installed, instead of specific frameworks configurations that changes every two minutes. - Support
.eslintrc.cjs
.
- Requires Node >= 16
- Only add
forceConsistentCasingInFileNames
in TypeScript <= 4.9, as it is now true by default in TypeScript >= 5.0. - Add back
exactOptionalPropertyTypes
. It is reliable for your own code. Issues are only because of some libraries, so if a library is not correct regarding this check, report it to the lib repo, and temporarily addskipLibCheck
to yourtsconfig.json
. - Add back
noUncheckedIndexedAccess
if TypeScript >= 5.0. It was reverted because the compiler is not smart enough in some cases. First case was dynamic objects (Record
or{ [key: string]: string }
): but now TypeScript >= 5.0 infers correctly if you check before (if ('someProperty' in someObject)
). Second case is still there and is when accessing directly a speficic array value (myArray[2]
) but those cases mainly happen because of old JavaScript syntaxes, there are easily avoided with modern syntaxes (likefor...of
,?.
,??
).
Remove support for TSLint and Codelyzer.
Fix a dependency issue.
Just a documentation update.
Disable the addition of exactOptionalPropertyTypes
for now, as too much libraries are not supporting it yet.
Add a new tsconfig.json
rule in projects with TypeScript >= 4.4:
exactOptionalPropertyTypes
Preserve comments in JSON files.
Add a new tsconfig.json
rule in projects with TypeScript >= 4.3:
noImplicitOverride
Reminder: a Node LTS version is required, so Node 10 may still work but is no longer supported.
For ESLint:
- add
@typescript-eslint/explicit-module-boundary-types
instead of@typescript-eslint/explicit-function-return-type
- preserve advanced options if rules already exist
- do not add TypeScript rules twice if already done in an
override
Add tsconfig.json
rule:
noPropertyAccessFromIndexSignature
(TypeScript >= 4.2)
Reverting the addition of noUncheckedIndexedAccess
flag.
Currently it reports too much false positives,
which probably explains why it is not part of the strict
mode.
Add @angular-eslint/template/no-any
rule in relevant projects.
Add tsconfig.json
rules:
forceConsistentCasingInFileNames
noFallthroughCasesInSwitch
noImplicitReturns
- Override ESLint rules if already here but disabled
- Always add ESLint rules at root level even when there are overrides
Support adding ESLint strict rules in overrides
, which means support for @angular-eslint
!
For Angular projects still using TSLint/Codelyzer, add the following lint option:
No change.
New release for internal purposes.
No change, new release for internal purposes.
- For Angular projects, update to last Angular strict compiler options:
fullTemplateTypeCheck
is not required anymore as it is replaced bystrictTemplates
- add new
strictInputAccessModifiers
option
-
Look for
tsconfig.base.json
to support new "solution style" configuration introduced in TypeScript 3.9 and already used by Angular 10. -
Enable full strict mode for Angular projects, to align with new Angular 10 recommandations (previously
strictPropertyInitialization
was disabled).
No code change, just rebuild with latest minimist
dependency to fix security audits.
Clean up tsconfig.json
options already included in strict
mode.
Initial release.