-
Notifications
You must be signed in to change notification settings - Fork 13.2k
Labels
BugA bug in TypeScriptA bug in TypeScript
Description
🔎 Search Terms
duplicate diagnostics, duplicate errors
🕗 Version & Regression Information
- This is the behavior in every version I tried
⏯ Playground Link
💻 Code
interface ComplicatedTypeBase {
[s: string]: ABase;
}
interface ComplicatedTypeDerived {
[s: string]: ADerived;
}
interface ABase {
a: string;
}
interface ADerived {
b: string;
}
class Base {
foo!: ComplicatedTypeBase;
}
const x = class Derived extends Base {
foo!: ComplicatedTypeDerived;
}
let obj: { 3: string } = { 3: "three" };
obj[x];🙁 Actual behavior
Two instances of the same error on line foo!: ComplicatedTypeDerived;:
Property 'foo' in type 'Derived' is not assignable to the same property in base type 'Base'. Type 'ComplicatedTypeDerived' is not assignable to type 'ComplicatedTypeBase'.(2416)Property 'foo' in type 'Derived' is not assignable to the same property in base type 'Base'. Type 'ComplicatedTypeDerived' is not assignable to type 'ComplicatedTypeBase'. 'string' index signatures are incompatible. Property 'a' is missing in type 'ADerived' but required in type 'ABase'.(2416)
🙂 Expected behavior
A single instance of the error
Additional information about the issue
No response
Metadata
Metadata
Assignees
Labels
BugA bug in TypeScriptA bug in TypeScript