Why does func1
work as expected while func2
shows error?
type AnyObj = Record<string, any>;
type Data = { a: number; b: string };
type DataFunction = (arg: AnyObj) => any;
const func1: DataFunction = () => {};
const arg1: Data = {} as any;
func1(arg1); // great
const func2 = (arg: { func: DataFunction }) => {};
const arg2: { func: (arg: Data) => { } } = {} as any;
func2(arg2); // why not ok?