Используйте определение машинописного текста для проверки запроса тела ЗАПИСИ

#node.js

Вопрос:

Я пишу API, и я хочу проверить наличие необходимых параметров в теле СООБЩЕНИЯ. Также могут быть дополнительные параметры. Например:

 // user_create.ts
type User = {
 name: string;
 age?: number;
}
 

В экспресс POST /User/create -реализации я хочу проверить, содержит ли тело не более (т. Е. Будет выдана ошибка для свойства, которого нет в определении):

 // POST body
{
  User: {
    name: "John"
    age: 40
  }
}
 

API будет делиться этими определениями с интерфейсным кодом.

Мой вопрос в том, есть ли способ для узла проанализировать это определение типа во время выполнения, чтобы мне не приходилось вручную проверять наличие всех обязательных полей и предотвращать поля, которые не должны быть частью тела.

Что-то вроде:

 // api.ts (pseudocode)
router.post('/user/create', (res, req) => {
 const typescriptDefs = parseTypescript('user_create.ts');
 if(!req.body.matches(typescriptDefs)) {
  res.send('Invalid fields');
 }
});