🔎 Search Terms
type guard parameter any unknown
🕗 Version & Regression Information
- This changed between versions 4.9.6 and 5.0.4
⏯ Playground Link
https://www.typescriptlang.org/play?ts=5.5.0-dev.20240321#code/JYOwLgpgTgZghgYwgAgEIHsAeAeAKgPmQG8AoZc5ANzgBsBXCALmVxIF8SSY6QExh0IZMADOGHAQAUAIyzMeAaxDoA7iACUzWZmEi0WPIVIVkUCGDpQhYKA3acEgkWGQg6AW2nRxzcdkXKaoQAvMTU9EwAjBwkwDDIkqJ+bp7Q+JIpXlDi6urEZBSZ3lgAdOF2JgD0lSYmAHoA-PZxCUkGcCAAnulF2Vi5+Sa94mW0FRTVtRSN7EA
💻 Code
interface Box<T> {
value: T
}
function isBox<T>(box: unknown): box is Box<T> {
return true
}
const numberBox: Box<unknown> = {value:1}
if (isBox<number>(numberBox)) {
numberBox.value
// ^?
}
if (isBox<any>(numberBox)) {
numberBox.value
// ^?
}
🙁 Actual behavior
if (isBox<any>(numberBox)) {
numberBox.value
// ^? (property) Box<unknown>.value: unknown
}
🙂 Expected behavior
if (isBox<any>(numberBox)) {
numberBox.value
// ^? (property) Box<any>.value: any
}
Additional information about the issue
Maybe caused by #52282 which also caused #53178
🔎 Search Terms
type guard parameter any unknown
🕗 Version & Regression Information
⏯ Playground Link
https://www.typescriptlang.org/play?ts=5.5.0-dev.20240321#code/JYOwLgpgTgZghgYwgAgEIHsAeAeAKgPmQG8AoZc5ANzgBsBXCALmVxIF8SSY6QExh0IZMADOGHAQAUAIyzMeAaxDoA7iACUzWZmEi0WPIVIVkUCGDpQhYKA3acEgkWGQg6AW2nRxzcdkXKaoQAvMTU9EwAjBwkwDDIkqJ+bp7Q+JIpXlDi6urEZBSZ3lgAdOF2JgD0lSYmAHoA-PZxCUkGcCAAnulF2Vi5+Sa94mW0FRTVtRSN7EA
💻 Code
🙁 Actual behavior
🙂 Expected behavior
Additional information about the issue
Maybe caused by #52282 which also caused #53178