Tipo any

Como se ha comentado, el tipo any clasifica cualquier valor, lo que significa que una variable de tipo any puede estar asociada a todos los valores posibles.

Por ejemplo, echemos un vistazo a la función M Date.AddDays. Esta función recibe como valores de entrada un valor temporal (de tipo fecha, fecha y hora, o fecha y hora con información sobre la zona horaria) y un número de días, y devuelve el valor temporal en cuestión tras añadirle el número de días indicado. La sintaxis de esta función es la siguiente:

Date.AddDays(
    dateTime as any,
    numberOfDays as number
) as any

Comprobamos que el tipo del argumento numberOfDays (número de días a añadir) es number, pero el tipo del argumento dateTime es any, indicando que puede ser de cualquier tipo. En realidad, no puede ser de cualquier tipo. Deberá ser de tipo date, datetime o datetimezone, pero como no hay forma de especificar que dicho argumento pueda pertenecer a uno de tres tipos concretos, la función se define formalmente como incluyendo un primer argumento de tipo any. Y, por supuesto, el valor devuelto por la función es también de tipo any (lo que se indica con el texto "as any" al final de la expresión) pues va a ser igual al valor de entrada (sea cual sea su tipo) más un número de días (manteniendo el tipo del valor de entrada).

Veamos un ejemplo de uso de esta función: pasemos como valor temporal de entrada la fecha del 28 de octubre de 1970 (valor temporal que podemos definir con la función M #date) y sumémosle dos días:

let
    fecha = #date(1970,10,28)
in
    Date.AddDays(fecha, 2)

30/10/1970
Tipo any

Vemos en la parte superior de la imagen, por detrás de la ventana del editor avanzado, el resultado devuelto por la consulta: la fecha del 30 de octubre de 1970.

En todo caso debemos saber que no es posible asociar a una variable el tipo any directamente.