Cuando tengo un objeto de tipo conocido y quiero agregarle algunas propiedades. Y también soy demasiado perezoso para escribir una interfaz adicional.
¿Cómo puedo obtener tipos heredados e inferidos para propiedades en el mismo objeto?
Por ejemplo, express agrega propiedades al objeto de solicitud y quiero hacer lo mismo
import * as http from 'http'; /** * @param {http.IncomingMessage} request * @param {http.ServerResponse} response */ function doStuff(request, response) { request.numericProp = 10; console.log(request.numericProp + 20); } Aquí veo errores en .numericProp
Property 'numericProp' does not exist on type 'IncomingMessage'.ts(2339)Por supuesto, puedo permitir accesorios adicionales haciendo esto:
/** * @param {http.IncomingMessage & { [key: string]: any }} request * @param {http.ServerResponse} response */Y no habrá más errores mientras aún pueda ver sugerencias sobre las propiedades de IncomingMessage, PERO ... numericProp es cualquiera.
Quiero que se infiera automáticamente como number .
¿Hay algún truco incorporado, como Partial<> , o qué tipo de construcción puedo usar?