1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
// @strictNullChecks: true,false
declare let nonNull: {};
if (nonNull === "foo") {
nonNull;
}
else {
nonNull;
}
declare let obj: { a: string };
if (nonNull === obj) {
nonNull;
}
else {
nonNull;
}
function f1<T>(x: T) {
if (nonNull === x) {
nonNull;
}
else {
nonNull;
}
}
function f2<T extends object>(x: T) {
if (nonNull === x) {
nonNull;
}
else {
nonNull;
}
}
declare let union: "xyz" | { a: string } | undefined;
if (nonNull === union) {
nonNull;
}
else {
nonNull;
}
if (nonNull === undefined) {
nonNull;
}
else {
nonNull;
}
if (nonNull === null) {
nonNull;
}
else {
nonNull;
}
if (nonNull == undefined) {
nonNull;
}
else {
nonNull;
}
// Repro from #50567
const foo = (value: unknown): string => {
if (!value) {
return 'foo';
}
if (value === 'xyz') {
return value; // Type '{}' is not assignable to type 'string'.
}
return '';
};
|