I read this article and I cannot understand the signature:
type FuncWithOneObjectArgument<P extends { [x: string]: any }, R> = (props: P) => R;
What does { [x: string]: any} mean? I supposed it's a dictionary with values of any type and keys of... what? List? Of strings?! What does x mean? I tried to remove x but it leads to syntax error... How to read the type?