Strengthen TypeScript Checks#1153
Merged
Merged
Conversation
Enable exact optional properties, unchecked indexed access, explicit index-signature access, isolated modules, verbatim module syntax, and the remaining low-risk compiler checks across the frontend and Node configurations. Migrate imports and unsafe array or optional-property access to satisfy the stricter contracts. Validate RGBA tuples and generated binding data at their boundaries instead of hiding possible undefined values with assertions. Add a reusable typecheck script and enforce it in web CI. Keep library declaration checking disabled for the Node configuration because the combined DOM, WebWorker, and Workbox declarations conflict, and leave frontend noImplicitOverride disabled until generated livesplit-core classes emit override modifiers. Validation: npm ci, ESLint, both TypeScript configurations, web production build, and Tauri frontend build.
Advance livesplit-core to the merged TypeScript binding improvements. Use the generated fixed-size color and gradient tuples directly, switch the JavaScript localization API to Lang.displayName, and remove the frontend's temporary RGBA validation boundary. Enable noImplicitOverride for the frontend and annotate the React lifecycle methods that intentionally override their base class contracts. Validation: full livesplit-core WebAssembly rebuild, ESLint, both TypeScript configurations, web production build, and Tauri frontend build.
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.
Enable exact optional properties, unchecked indexed access, explicit index-signature access, isolated modules, verbatim module syntax, no implicit overrides, and the remaining low-risk compiler checks across the frontend and Node configurations.
Migrate imports and unsafe array or optional-property access to satisfy the stricter contracts. Advance livesplit-core to its improved TypeScript bindings, use its fixed color and gradient tuples directly, expose localized language names through the JavaScript-safe
Lang.displayName, and annotate intentional React overrides.Add a reusable typecheck script and enforce it in web CI. Keep library declaration checking disabled for the Node configuration because the combined DOM, WebWorker, and Workbox declarations conflict.
Validation: npm ci, a full livesplit-core WebAssembly rebuild, ESLint, both TypeScript configurations, web production build, and Tauri frontend build.