Typescript con TypeLite - Comprobación de tipo de tiempo de ejecución

Digamos que tengo algunos DTO de C # y quiero convertirlos a interfaces TypeScript usando plantillas T4 y una pequeña biblioteca llamadaTypeLite

En el lado del cliente, tengo algunas clases concretas de TypeScript (que heredan de Backbone.Model pero eso no es importante) que representan el mismo DTO definido en el lado del servidor.

El objetivo de las interfaces es actuar como contratos de datos y garantizar que los DTO de cliente y servidor se mantengan sincronizados.

Sin embargo, esto es problemático, ya que TypeScript no admite ninguna función de verificación de tipos en tiempo de ejecución que no seainstanceof. El problema con la instancia es que cuando obtengo mis DTO del servidor, son objetos JSON simples y no instancias de mi modelo. Necesito realizar una verificación de tipo en tiempo de ejecución en estos DTO que vienen del servidor como objetos JSON.

Sé que puedo hacer algo como esto:

collection.fetch({...}).done((baseModels) => {
     baseModels.forEach((baseModel) => {
           if(baseModel&& baseModel.SomeProperty && baseModel.SomeOtherProperty){
                //JSON model has been "type-checked"
           }
     });
});

Sin embargo, hay problemas obvios a esto porque ahora necesito actualizar enTres Lugares si cambio o añado una propiedad.

Actualmente lo único que encontré esesta pero está sin documentar, no se mantiene y utiliza un nodo con el que no tengo experiencia, así que me ahorraría la frustración. ¿Alguien sabe de algo similar para realizar la verificación de tipos en tiempo de ejecución en TypeScript o alguna otra forma de lograr lo que estoy buscando?

Sería genial si esto estuviera integrado en TypeLite para generar las interfaces, así como un esquema JSON para la verificación de tipos en tiempo de ejecución. Siendo que este proyecto esfuente abierta Alguien realmente debería seguir adelante y extenderlo. Necesitaría algunos consejos al menos si lo haría yo mismo (por lo tanto, la pregunta).

Más detalles sobre mi problema particularaquí (no es necesario pero si es necesario contexto adicional)