Microsoft/TypeScript
Auf GitHub ansehenStrange boolean-discriminant narrowing with strictNullChecks off
Open
#10.564 geöffnet am 26. Aug. 2016
BugDomain: check: Control FlowEffort: ModerateHelp Wanted
Repository-Metriken
- Stars
- (48.455 Stars)
- PR-Merge-Metriken
- (Durchschn. Merge 6T 17h) (9 gemergte PRs in 30 T)
Beschreibung
TypeScript Version: nightly (2.1.0-dev.20160826)
Code
type Result = { success: true }
| { success: false, error: string }
function handleError(res: Result) {
if (res.success === true) {
return;
}
res.error; // OK
}
function handleError2(res: Result) {
if (res.success !== false) {
return;
}
res.error; // OK
}
function handleError3(res: Result) {
if (res.success) {
return;
}
res.error; // Property 'error' does not exist on type 'Result'
// but should be OK
}
Expected behavior: All three cases should behave the same.