Closed
Description
TypeScript Version:
v4.0.0-dev.20200523
Search Terms:
type guard closure
Code
let data: {[k: string]: string} = {}
function deleteOnClick() {
let key = findKey()
if (!key) {
return;
}
let key2 = key
window.addEventListener("click", () => {
delete data[key2] // this is ok
delete data[key] // type error, key can be null
})
}
function findKey(): string | null {
return null
}
Expected behavior:
delete data[key]
contains no error
Actual behavior:
delete data[key]
contains type error