Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork2.8k
Closed as not planned
Labels
accepting prsGo ahead, send a pull request that resolves this issueduplicateThis issue or pull request already existsenhancement: new plugin ruleNew rule request for eslint-pluginlocked due to agePlease open a new issue if you'd like to say more. See https://typescript-eslint.io/contributing.package: eslint-pluginIssues related to @typescript-eslint/eslint-plugin
Description
Before You File a Proposal Please Confirm You Have Done The Following...
- I havesearched for related issues and found none that match my proposal.
- I have searched thecurrent rule list and found no rules that match my proposal.
- I haveread the FAQ and my problem is not listed.
My proposal is suitable for this project
- My proposal specifically checks TypeScript syntax, or it proposes a check that requires type information to be accurate.
- My proposal is not a "formatting rule"; meaning it does not just enforce how code is formatted (whitespace, brace placement, etc).
- I believe my proposal would be useful to the broader TypeScript community (meaning it is not a niche proposal).
Description
Validate that overriden method signatures match the base signature (i.e. no narrowing of types)
Fail Cases
classA{f(p:string|number){console.log('A',p);}}classBextendsA{f(p:string){console.log('B',p,p.charCodeAt(0));}}constarrayOfA:Array<A>=[newA(),newB()];for(constitemofarrayOfA){item.f(123);}
Pass Cases
classA{f(p:string|number){console.log('A',p);}}classBextendsA{f(p:string|number){<--Needstomatchbaseclassmethodsignatureconsole.log('B',p,p.charCodeAt(0));}}constarrayOfA:Array<A>=[newA(),newB()];for(constitemofarrayOfA){item.f(123);}
Additional Info
TS issue was closed as "working as intended" but this is very dangerous, since this breaks some type safety, meaning that this introduces a risk of runtime errors
Metadata
Metadata
Assignees
Labels
accepting prsGo ahead, send a pull request that resolves this issueduplicateThis issue or pull request already existsenhancement: new plugin ruleNew rule request for eslint-pluginlocked due to agePlease open a new issue if you'd like to say more. See https://typescript-eslint.io/contributing.package: eslint-pluginIssues related to @typescript-eslint/eslint-plugin