




не знаю о фреймворке, но ajv - хорошая библиотека для этого https://github.com/epoberezkin/ajv
Существует облегченный ts-interface-checker, который хорошо работает с TypeScript и ts-интерфейс-строитель, но его также можно использовать отдельно.
Например:
const t = require("ts-interface-checker");
const {Square} = t.createCheckers({
Square: t.iface([], {
"size": "number",
"color": t.opt("string"),
})
});
Square.check({size: 1}); // OK
Square.check({size: 1, color: "green"}); // OK
Square.check({color: "green"}); // Fails with "value.size is missing"
Square.check({size: 4, color: 5}); // Fails with "value.color is not a string"
Square.strictCheck({size: 4, spin: 5}); // Fails with "value.spin is extraneuous"