-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Closed
Labels
DuplicateAn existing issue was already createdAn existing issue was already created
Description
In some cases, we may want to have a function that read one field of an object identified by a parameter. Here is a small synthetic use case, for the purpose of the discussion:
interface Help {
brief: string;
detailed: string;
contextual: string;
}
function getHelpString(help: Help, format: string): string
{
return help[format];
}In that particular case, the type checker cannot ensure that we are doing things right. In order to make the type checker happy, we need a way to tell it that format is actually part of an implicit enumeration that only contains the names of the fields of the interface Help. This could be done by introducing a new type inference operator, for example fieldof.
function getHelpString(help: Help, format: fieldof Help): string
{
return help[format];
}This may not look like a very common use case, but I hoped to have such an operator in order to port incrementally a large amount of javascript code to typescript.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
DuplicateAn existing issue was already createdAn existing issue was already created