I found the difference in unknown and any when I was trying Deep Readonly
const f = () => 'string';
const a: { [key: string]: unknown } = f;
// Type '() => string' is not assignable to type '{ [key: string]: unknown; }'.
// Index signature for type 'string' is missing in type '() => string'.
const b: { [key: string]: any } = f;
// no error
Why are functions assignable to { [key: string]: any }? I don't think functions have string keys.