Add failing repro

This commit is contained in:
Anders Hejlsberg
2017-03-05 14:07:33 -08:00
parent 19e88acbfa
commit efea81b8a0

View File

@@ -0,0 +1,35 @@
// @strictNullChecks: true
// Type guards involving type parameters produce intersection types
class C {
prop: string;
}
function f1<T>(x: T) {
if (x instanceof C) {
let v1: T = x;
let v2: C = x;
x.prop;
}
}
function f2<T>(x: T) {
if (typeof x === "string") {
let v1: T = x;
let v2: string = x;
x.length;
}
}
// Repro from #13872
function fun<T>(item: { [P in keyof T]: T[P] }) {
const strings: string[] = [];
for (const key in item) {
const value = item[key];
if (typeof value === "string") {
strings.push(value);
}
}
}