Conversation
…ctOptionalPropertyTypes, skipLibCheck, strict Fix #16506
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
The workflow contains a blocking --tsconfig configuration error, and the strictness matrix does not test non-strict checking.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
Expands TypeScript type-test CI across TypeScript 5.9/7.0 and compiler-option combinations.
Changes:
- Adds matrix-specific TSTyche configuration and 16 CI combinations.
- Updates type tests for compiler compatibility.
- Removes a redundant exact-optional-property-types fixture.
- Adds TypeScript 7 compilation coverage.
File summaries
| File | Summary |
|---|---|
tstyche.matrix.json |
Adds recursive matrix test configuration. |
test/types/tsconfig.json |
Removes a redundant compiler option. |
test/types/schemaTypeOptions.test.ts |
Adjusts encryption type cases. |
test/types/schema.test.ts |
Updates expected-error placement. |
test/types/exactOptionalPropertyTypes/exactOptionalPropertyTypes.test.ts |
Removes the redundant dedicated fixture. |
.github/workflows/types.yml |
Adds the TypeScript/compiler-option matrix. Critical (2 votes): --tsconfig receives inline JSON instead of a file path. Moderate (3 votes): strict: false rows retain strict sub-options and do not test non-strict checking. |
Review details
Suppressed comments (1)
.github/workflows/types.yml:75
- The same issue applies to the fallback
tscrun: passing--strict falsedoes not disable the four explicitly forced strict sub-options, so thestrict=falsejobs compile with the same effective strictness as thestrict=truejobs. Without deriving these flags from the matrix, this half of the matrix also misses the advertised non-strict configuration.
--strict ${{ matrix.strict }} --strictNullChecks true
--noImplicitAny true --noImplicitThis true --strictFunctionTypes true
- Files reviewed: 6/6 changed files
- Comments generated: 2
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| run: >- | ||
| npm run test:types -- --config tstyche.matrix.json | ||
| --target ${{ matrix.typescript }} --tsconfig | ||
| '{"extends":"./test/types/tsconfig.json","compilerOptions":{"strict":${{ matrix.strict }},"strictNullChecks":true,"noImplicitAny":true,"noImplicitThis":true,"strictFunctionTypes":true,"skipLibCheck":${{ matrix.skip_lib_check }},"exactOptionalPropertyTypes":${{ matrix.exact_optional_property_types }}}}' |
hasezoey
approved these changes
Sep 16, 2026
hasezoey
left a comment
Collaborator
There was a problem hiding this comment.
Looks good, though that makes test jobs quite messy.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fix #16506
Summary
Run TypeScript tests on all permutations of TypeScript 5/7, exactOptionalPropertyTypes true/false, skipLibCheck true/false, strict true/false. In an abundance of caution to minimize risk of surprise errors under different configurations.
Examples