// *** before: ***
function getUrl(url: string | undefined) {
if (url === undefined) {
url = "https://example.com";
}
return () => {
console.log(url.toUpperCase()); // <-Error: url снова string |
//undefined внутри замыкания
};
}
// *** in version 5.4: ***
function getUrlNarrowed(url: string | undefined) {
if (url === undefined) {
url = "https://example.com";
}
return () => {
console.log(url.toUpperCase()); // OK: TS видит, что url больше не
//переприсваивался
};
}