[exactOptionalPropertyTypes] Unexpected 'undefined' arises in error message
#60,712 opened on 2024幎12æ7æ¥
Repository metrics
- Stars
- Â (48,455 stars)
- PR merge metrics
-  (å¹³åããŒãž 6d 17h) (30d ã§ 9 merged PRs)
説æ
ð Search Terms
"not assignable", "never", "undefined", "exactOptionalPropertyTypes"
ð Version & Regression Information
4.3.5
'undefined' error instead of 'never' ; the value undefined is considered valid
4.4.4, 5.0.4
Expected behavior
5.1.6, 5.7.2
'undefined' error instead of 'never' ; the value undefined triggers the 'never' message
Nightly
not available when testing
⯠Playground Link
ð» Code
--exactOptionalPropertyTypes
type T =
{ a: number, b?: never } |
{ a?: never, b: number };
const t: T = { // Types of property 'b' are incompatible. Type 'number' is not assignable to type 'undefined'
a: 0,
b: 0
};
ð Actual behavior
Type 'number' is not assignable to type 'undefined' is not relevant, since undefined cannot be the type of the t[b].
ð Expected behavior
The error should be about type 'number' not being assignable to type 'never'.
It is correctly displayed if the value undefined is used (after the regression at least).