typescript - ¿Nombre de propiedad comodín en la interfaz?
Sé que puedes establecer un comodín completo en una interfaz para permitir cualquier propiedad que quieras, como:
interface ITest {
[wildcard: string]: any;
}
¿Pero hay una manera de que un comodín coincida con un patrón para el nombre de la propiedad?
interface ITest {
/EndOfKeyName$/: boolean;
/^startOfKeyName/: string;
}
No tiene que ser regex, solo estoy tratando de mostrar un escenario ideal. Sin embargo, no estoy seguro de que esto sea posible.
Respuesta #1
ACTUALIZACIÓN PARA TS 4.4: Los tipos de plantillas literales ahora se pueden usar como se muestra a continuación, como en la respuesta duplicada. La funcionalidad está documentada como "Firmas de índice de patrón de símbolo y cadena de plantilla".
interface BoolsAndStrings {
[key: `boolean${string}`]: boolean;
[key: `string${string}`]: string;
}
área de juego de TypeScript
Si intentas esto en TypeScript 4.3 o anterior, producirá:
El tipo de parámetro de una firma de índice debe ser 'string' o 'number'
