Microsoft/TypeScript
View on GitHubProperty is not assignable to the same property in generic base type
Open
#61,918 opened on Jun 23, 2025
BugDomain: check: Variance RelationshipsHelp Wanted
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
💻 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;
}
}