Are there any means for JSON serialization/deserialization of Typescript objects so that they don't lose type information? Simple JSON.parse(JSON.stringify)
has too many caveats.
Or I should use adhoc solutions?
Use Interfaces to get strong types:
// Creating
var foo:any = {};
foo.x = 3;
foo.y='123';
var jsonString = JSON.stringify(foo);
alert(jsonString);
// Reading
interface Bar{
x:number;
y?:string;
}
var baz:Bar = JSON.parse(jsonString);
alert(baz.y);
And use type assertion "<>" if you need to.