Given a tuple type ```T``` that only contains string type, and a type ```U```, build an object recursively. ```typescript type a = TupleToNestedObject<['a'], string> // {a: string} type b = TupleToNestedObject<['a', 'b'], number> // {a: {b: number}} type c = TupleToNestedObject<[], boolean> // boolean. if the tuple is empty, just return the U type ```by jiangshan @jiangshanmeta