Refactor to enforce strictNullChecks
This commit applies `strictNullChecks` to the entire codebase to improve maintainability and type safety. Key changes include: - Remove some explicit null-checks where unnecessary. - Add necessary null-checks. - Refactor static factory functions for a more functional approach. - Improve some test names and contexts for better debugging. - Add unit tests for any additional logic introduced. - Refactor `createPositionFromRegexFullMatch` to its own function as the logic is reused. - Prefer `find` prefix on functions that may return `undefined` and `get` prefix for those that always return a value.
This commit is contained in:
14
tests/shared/Assertions/ExpectExists.ts
Normal file
14
tests/shared/Assertions/ExpectExists.ts
Normal file
@@ -0,0 +1,14 @@
|
||||
/**
|
||||
* Asserts that the provided value is neither null nor undefined.
|
||||
*
|
||||
* This function is a more explicit alternative to `expect(value).to.exist` in test cases.
|
||||
* It is particularly useful in situations where TypeScript's control flow analysis
|
||||
* does not recognize standard assertions, ensuring that `value` is treated as
|
||||
* non-nullable in the subsequent code. This can prevent potential type errors
|
||||
* and enhance code safety and clarity.
|
||||
*/
|
||||
export function expectExists<T>(value: T): asserts value is NonNullable<T> {
|
||||
if (value === null || value === undefined) {
|
||||
throw new Error('Expected value to exist');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user