Closed
Description
Template literals as keys in object literals loosing type information, even with explicite type literals (works only with one exact type).
TypeScript Version: 4.1.2, 4.2.0-dev.20201210
Search Terms: Template literal types literal keys object keys literal types
Code
const template = <T extends string>(name: T) => ({
[`${name}` as const]: name
});
Expected behavior:
const value = template ('TEST'); // const value: { TEST: "TEST"; }
Actual behavior:
const value = template ('TEST'); // const value: { [x: string]: "TEST"; }
Related Issues: Might be related to #41631