typescript - ¿Puede TaggedTemplate tener firmas de sobrecarga con un cierto argumento literal de cadena?
declare function taggedFn(x: ['strange']): 123;
declare function taggedFn(x: TemplateStringsArray): string;
// OK
var v1: string = taggedFn`ordinary`;
// NG: How can I hit the ['strange'] signature?
var v2: 123 = taggedFn`strange`;
- Tengo una función TaggedTemplate
- Puedo controlar sus firmas
- Quiero que devuelva
stringen una llamada normal - Quiero que devuelva
123cuando un argumento seastrange(NG)
Básicamente es posible para una función normal mediante sobrecarga, pero ¿cómo podemos hacerlo con una función TaggedTemplate? ¿Es posible sobrecargarla con un argumento determinado?
Aquí hay un ejemplo funcional.
Gracias.
Respuesta #1
Esto actualmente no es posible y hay un problema abierto en el rastreador de problemas de TS para agregar soporte para esto.