Open
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