TypeScript index signature with unknown value

Is there a difference between {(k: string): any} and {(k: string): unknown}. I assumed both would be an object with string key but they are not. The first one accepts any object like value but once the value type is changed from any -> any other type (ex. unknown), it accepts only actual object {}.

I found an answer from @ryan-cavanaugh for the {(k: string): any} part here but the second part confused me.

This is a distinguishing feature between { (k: string): any } and any itself – you can read and write properties of any kind on an object with an index signature

It seems {(k: string): any} is exactly like object type. Can someone please explain to me the difference.

let data: {(n: string): any};

data = (); // Ok
data = () => {}; // Ok
data = new Date(); // Ok
data = Function; // Ok

let data: {(n: string): unknown};

data = {}; // OK
data = (); // Error. But TS handbook says otherwise
data = () => {}; // Error
data = new Date(); // Error
data = Function; // Error