Verifique se um objeto implementa uma interface em tempo de execução com o TypeScript
Carrego um arquivo de configuração JSON em tempo de execução e uso uma interface para definir sua estrutura esperada:
interface EngineConfig {
pathplanner?: PathPlannerConfig;
debug?: DebugConfig;
...
}
interface PathPlannerConfig {
nbMaxIter?: number;
nbIterPerChunk?: number;
heuristic?: string;
}
interface DebugConfig {
logLevel?: number;
}
...
Isso facilita o acesso às várias propriedades, pois eu posso usar preenchimentos automáticos etc.
Pergunta, questão:existe uma maneira de usar esta declaração para verificar a correção do arquivo que carrego? ou seja, que eu não tenho propriedades inesperadas?