Description
The TypeAnnotationsAssessor checks each tsconfig.json for compilerOptions.strict directly, but does not resolve the extends field. Leaf configs that inherit strict: true from a base config (e.g., tsconfig.base.json or a shared package like @tsconfig/node20) are incorrectly treated as non-strict.
Example
// tsconfig.base.json
{ "compilerOptions": { "strict": true } }
// packages/app/tsconfig.json — inherits strict but scores as non-strict today
{ "extends": "../../tsconfig.base.json" }
Scope
- Resolve relative
extends paths
- Handle node-style package references (e.g.,
@tsconfig/node20/tsconfig.json)
- Merge parent
compilerOptions into child
- Detect and prevent circular
extends
- Add unit tests for inherited
strict
Context
Identified during code review of #485. Deferred as out of scope for that PR which focused on JSONC parsing (#383) and monorepo discovery (#431).
Description
The
TypeAnnotationsAssessorchecks eachtsconfig.jsonforcompilerOptions.strictdirectly, but does not resolve theextendsfield. Leaf configs that inheritstrict: truefrom a base config (e.g.,tsconfig.base.jsonor a shared package like@tsconfig/node20) are incorrectly treated as non-strict.Example
Scope
extendspaths@tsconfig/node20/tsconfig.json)compilerOptionsinto childextendsstrictContext
Identified during code review of #485. Deferred as out of scope for that PR which focused on JSONC parsing (#383) and monorepo discovery (#431).