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
|
//// [useUnknownInCatchVariables01.ts]
try {
// ...
}
catch (e) {
// error!
void e.toUpperCase();
void e++;
void e();
if (typeof e === "string") {
// works!
// We've narrowed 'e' down to the type 'string'.
console.log(e.toUpperCase());
}
if (e instanceof Error) {
e.stack?.toUpperCase();
}
if (typeof e === "number") {
e.toExponential();
e++;
}
}
try {
// ...
}
catch (e: any) {
// All are allowed.
void e.toUpperCase();
void e.toExponential();
void e();
}
//// [useUnknownInCatchVariables01.js]
var _a;
try {
// ...
}
catch (e) {
// error!
void e.toUpperCase();
void e++;
void e();
if (typeof e === "string") {
// works!
// We've narrowed 'e' down to the type 'string'.
console.log(e.toUpperCase());
}
if (e instanceof Error) {
(_a = e.stack) === null || _a === void 0 ? void 0 : _a.toUpperCase();
}
if (typeof e === "number") {
e.toExponential();
e++;
}
}
try {
// ...
}
catch (e) {
// All are allowed.
void e.toUpperCase();
void e.toExponential();
void e();
}
|