fix(structures): widen via String() in narrowing test to satisfy lint
The narrowing test for `isStructureKind` had `const candidate: string = 'medico_social'`, which ESLint's `@typescript-eslint/no-inferrable-types` correctly flags as trivially-inferred. The naive fix - dropping the annotation - would let TypeScript infer the literal type `'medico_social'`, which is already a StructureKind subtype. The narrowing check would then be vacuous (TypeScript already knows the value is a kind, the runtime guard has nothing to prove). Fix: round-trip through `String()` to widen the literal to `string`. TypeScript infers `string` for `String(...)` return; no annotation needed; the narrowing test stays meaningful. CI lint target on portal-bff now passes 0 errors. The 13 remaining warnings (non-null assertions in principal-extractor.spec, unused underscored params in rate-limit.middleware, etc.) are pre-existing and not in scope for this fix.
This commit is contained in:
@@ -35,7 +35,10 @@ describe('isStructureKind', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('narrows the type at the call site', () => {
|
it('narrows the type at the call site', () => {
|
||||||
const candidate: string = 'medico_social';
|
// Round-trip through `String()` to widen the literal to `string`.
|
||||||
|
// Without this the inferred type is `'medico_social'`, already a
|
||||||
|
// StructureKind subtype — the narrowing check would be vacuous.
|
||||||
|
const candidate = String('medico_social');
|
||||||
if (!isStructureKind(candidate)) {
|
if (!isStructureKind(candidate)) {
|
||||||
throw new Error('unreachable — candidate is a known kind');
|
throw new Error('unreachable — candidate is a known kind');
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user