no-unsafe-type-narrowing
ESLint rule documentation for no-unsafe-type-narrowing
📡 Live from GitHub — This documentation is fetched directly from no-unsafe-type-narrowing.md and cached for 6 hours.
Keywords: no unsafe type narrowing, quality, ESLint rule, JavaScript, TypeScript, SonarQube RSPEC-4326
ESLint Rule: no-unsafe-type-narrowing with LLM-optimized suggestions and auto-fix capabilities.
ESLint Rule: no-unsafe-type-narrowing with LLM-optimized suggestions and auto-fix capabilities.
Quick Summary
| Aspect | Details |
|---|---|
| Severity | Error (code quality) |
| Auto-Fix | ❌ No |
| Category | Quality |
| ESLint MCP | ✅ Optimized for ESLint MCP integration |
| Best For | Production applications |
| Suggestions | ✅ 4 available |
Rule Details
Why This Matters
| Issue | Impact | Solution |
|---|---|---|
| 🔒 Security/Code Quality | [Specific issue] | [Solution approach] |
| 🐛 Maintainability | [Impact] | [Fix] |
| ⚡ Performance | [Impact] | [Optimization] |
Configuration
No configuration options available.
Examples
❌ Incorrect
// Example of incorrect usage✅ Correct
// Example of correct usageConfiguration Examples
Basic Usage
// eslint.config.mjs
export default [
{
rules: {
'reliability/no-unsafe-type-narrowing': 'error',
},
},
];LLM-Optimized Output
🚨 no unsafe type narrowing | Description | MEDIUM
Fix: Suggestion | ReferenceRelated Rules
rule-name- Description
Further Reading
- Reference - Description
Known False Negatives
The following patterns are not detected due to static analysis limitations:
Dynamic Variable References
Why: Static analysis cannot trace values stored in variables or passed through function parameters.
// ❌ NOT DETECTED - Value from variable
const value = externalSource();
processValue(value); // Variable origin not trackedMitigation: Implement runtime validation and review code manually. Consider using TypeScript branded types for validated inputs.
Wrapped or Aliased Functions
Why: Custom wrapper functions or aliased methods are not recognized by the rule.
// ❌ NOT DETECTED - Custom wrapper
function myWrapper(data) {
return internalApi(data); // Wrapper not analyzed
}
myWrapper(unsafeInput);Mitigation: Apply this rule's principles to wrapper function implementations. Avoid aliasing security-sensitive functions.
Imported Values
Why: When values come from imports, the rule cannot analyze their origin or construction.
// ❌ NOT DETECTED - Value from import
import { getValue } from './helpers';
processValue(getValue()); // Cross-file not trackedMitigation: Ensure imported values follow the same constraints. Use TypeScript for type safety.