Microsoft/TypeScript

Property is not assignable to the same property in generic base type

Open

#61 918 ouverte le 23 juin 2025

Voir sur GitHub
 (2 commentaires) (0 réactions) (0 assignés)TypeScript (6 726 forks)batch import
BugDomain: check: Variance RelationshipsHelp Wanted

Métriques du dépôt

Stars
 (48 455 stars)
Métriques de merge PR
 (Merge moyen 6j 17h) (9 PRs mergées en 30 j)

Description

🔎 Search Terms

Property is not assignable to the same property in generic base type

🕗 Version & Regression Information

-This is the behavior in every version I tried, and I reviewed

⏯ Playground Link

https://www.typescriptlang.org/zh/play/?ts=5.8.3#code/IYIwzgLgTsDGEAJYBthjAgSgCwPYIG8AoBBUSGeBABwEsATAc1oDswAeAMQH0BRBAKYAPCAJb0MLAK4BbEAKgAaBDwBSAPgAUIKFLABHKQMgAuFd1UIAPud4BKM2uu2A3EQC+RFGgwAhZFIAZoEKgiJiElh4hCQ0DMxsXHxhouKSsvJK5hraugZGptnOPPaOFsXJscSkpFACEFJQLKQ6eobGEG6knp5AA

💻 Code

abstract class Rho {
  abstract pidgins<F_E extends number, F_J>(brusquest: F_J | F_E): F_J | F_E;
}
class Bluffer extends Rho {
  pidgins<F_E extends number, F_J>(brusquest: F_J | F_E): F_J | F_E 
  {
    return  brusquest;
  }
}

🙁 Actual behavior

Property 'pidgins' in type 'Bluffer' is not assignable to the same property in base type 'Rho'. Type '<F_E extends number, F_J>(brusquest: F_E | F_J) => F_E | F_J' is not assignable to type '<F_E extends number, F_J>(brusquest: F_E | F_J) => F_E | F_J'. Two different types with this name exist, but they are unrelated. Type 'number | F_E | F_J' is not assignable to type 'F_E | F_J'. Type 'number' is not assignable to type 'F_E | F_J'.(2416)

🙂 Expected behavior

No error

Additional information about the issue

The following works with no error:

abstract class Rho {
  abstract pidgins<F_E extends number, F_J>(brusquest: F_J | F_E): F_J | F_E;
  abstract pidgins<F_E extends number, F_J>(brusquest: F_J | F_E): F_J | F_E;
}
class Bluffer extends Rho {
  pidgins<F_E extends number, F_J>(brusquest: F_J | F_E): F_J | F_E 
  {
    return  brusquest;
  }
}

Guide contributeur