typescript - sumar - La variable de fecha funciona, pero las funciones en ella no lo hacen
typescript ejemplos (1)
Estoy usando TypeScript 1.4 en un proyecto ASP.NET MVC 5.
Tengo un campo de tipo Fecha, y funciona parcialmente:
var dob: Date = result.dateOfBirth;
alert(dob);
var dobAsString = dob.toDateString();
En el código anterior, las dos primeras líneas funcionan, mostrando el valor como "1968-11-16T00: 00: 00", como se esperaba. Pero la última línea no funciona, de hecho, el resto del código debajo de esa línea ni siquiera se ejecuta, simplemente se rompe, sin mensaje de error.
Este comportamiento persiste sin importar qué función de Fecha aplico en la última línea; También podría usar dob.getFullYear()
etc. y fallaría siempre. Sin embargo, la variable es del tipo correcto y tiene el valor correcto. El compilador también encuentra las funciones de fecha, compila sin problemas, pero en tiempo de ejecución falla. ¿Algunas ideas?
Hay dos aspectos a este. La primera es que necesita analizar la fecha, ya que actualmente tiene una representación de cadena. La segunda es que su variable de result
no tiene información de tipo.
var result = {
dateOfBirth: ''1968-11-16T00:00:00''
};
// Error, cannot convert string to date
var a: Date = result.dateOfBirth;
// Okay
var b: Date = new Date(result.dateOfBirth);
var result2: any = result;
// Okay (not type information for result2)
var c: Date = result2.dateOfBirth;
Cuando recibe un mensaje JSON, puede aplicarle una interfaz que describa lo que el servidor ha enviado para detectar problemas en su código de TypeScript, como el que encontró. Esto evitará que el problema vuelva a ocurrir en el futuro (aunque no verifique si el JSON suministrado coincide con la interfaz) ... el siguiente ejemplo asume que el result
tiene actualmente any
tipo.
interface NameYourResult {
dateOfBirth: string;
}
var r: NameYourResult = result;