let callback1: null | (() => void) = () => {};
let callback2: null | (() => void) = null;
let callback3: null | (() => void) = null;
if (callback1 != null)
    callback1(); // callable
callback2 = () => {}
if (callback2 != null)
    callback2(); // callable
new Promise<void>(() => callback3 = () => {});
if (callback3 != null)
    callback3(); // not callable
    // ^^^
    // This expression is not callable.
    //     Type 'never' has no call signatures.
It seems like TypeScript is doing some static analysis, but wrongly, as the code works fine in JS:
let callback3 = null;
new Promise(() => callback3 = () => { console.log("It Works"); });
if (callback3 != null)
    callback3();
// output: It Works
 
    