javascript - Ampliando el tipo number en Typescript
Quiero agregar alguna función al tipo number. Así que probé este código:
interface Number
{
IsInRange(min: number, max: number):boolean;
}
Number.prototype.IsInRange = function(min: number, max: number): boolean
{
if ((this >= min) && (this <= max)) return true;
return false;
}
Lo puse en el archivo extensions.ts en src/app/common (¿Es ese el lugar correcto?)
El problema es que mi código no compila. Obtuve:
La propiedad 'IsInRange' no existe en el tipo 'number'.
Pero el editor (Visual Studio Code) no se queja.
¿Qué estoy haciendo mal? Supongo que el number de TypeScript no es lo mismo que la interfaz Number.
Respuesta #1
Simplemente ten algo como esto entre tus funciones utilitarias:
export function isInRange(n: number, min: number, max: number): boolean {
return n >= min && n <= max
}
Entonces úsalo como
const inRange = isInRange(4, 2, 10); // instead of 4.isInRange(2, 10)
Respuesta #2
La interfaz Number debería estar al principio del archivo .ts
