-
Notifications
You must be signed in to change notification settings - Fork 13.1k
Open
Labels
BugA bug in TypeScriptA bug in TypeScriptDomain: Something ElseFallback label when we just can't figure anything else outFallback label when we just can't figure anything else outHelp WantedYou can do thisYou can do this
Milestone
Description
Bug Report
Error happens only when:
- MyInterface extends type alias which represents named array tuple
- MyInterface is generic
- MyType is NAMED tuple
- MyType has
...rest
🔎 Search Terms
type alias, named tuple, interface
🕗 Version & Regression Information
Typescript v4.9.3
⏯ Playground Link
Playground link with relevant code
💻 Code
The following code throws that error:
type MyType = [
name1:string,
name2: number,
...rest:any[]
]
interface MyInterface<T> extends MyType {
}
// "Interface 'MyInterface<T>' incorrectly extends interface '[name1: string, name2: number, ...rest: any[]]'.
All of the following below works fine:
type MyType = [
name1:string,
name2: number,
...rest:any[]
]
interface MyInterface extends MyType { //MyInterface is not generic => works
}
// ----------- OR -------------
type MyType = [ // MyType does not have ...rest => works fine
name1:string,
name2: number
]
interface MyInterface<T> extends MyType {
}
// ------------ OR ------------
type MyType = [ // MyType typle elements are not named => works fine
string,
number,
...any[]
]
interface MyInterface<T> extends MyType {
}
🙁 Actual behavior
TSC throws error:
Interface 'MyInterface<T>' incorrectly extends interface '[name1: string, name2: number, ...rest: any[]]'.
🙂 Expected behavior
Successfull compilation
jcalz
Metadata
Metadata
Assignees
Labels
BugA bug in TypeScriptA bug in TypeScriptDomain: Something ElseFallback label when we just can't figure anything else outFallback label when we just can't figure anything else outHelp WantedYou can do thisYou can do this