How do I add an index signature for a mapped type?
问题 Suppose I have interface interface X { a: string; b: number; c: boolean; } and a function function values(x: X) { return Object.keys(x).map(s => x[s]) } When I enable typescript's strict flag I get the error "Element implicitly has an 'any' type because type 'X' has no index signature". So to make it explicit, I can just add an index signature to the definition of X [key: string]: any; Easy peasy. However if I X is now a mapped type instead: type X<T> = { [P in keyof T]: string; } and I have