Использование TypeScript с body-parser для чтения свойств req.body - PullRequest
0 голосов
/ 01 июля 2019

Я создаю веб-приложение с использованием TypeScript с промежуточным ПО body-parser для анализа тел запросов JSON.Я сталкиваюсь с ошибками типа при попытке доступа к свойствам объекта Request.body.

Например, если я пытаюсь req.body.username, TypeScript выдает ошибку

Property 'username' does not exist on type 'ReadableStream<Uint8Array>'. 

Вещи, которые я пробовал:

  • Объявление пользовательского интерфейса для ReadableStream<Uint8Array>, непосредственно перед доступом к свойству username.
interface ReadableStream<Uint8Array> {
    username: string
}

TypeScript сообщает мне, что ReadableStreamбыл объявлен, но никогда не использовался.Не могу понять, почему это так.

  • Использование переноса в блоке if
if (req.body.hasOwnProperty('username')) {
    // Use req.body.username here
}

Кажется, что TypeScript не понимает, что это означает, что свойство username существует.

  • Использование индексации вместо точечной нотации
let p_username = req.body['username'];

Это было последнее, что я попробовал, даже если это не проверяет точку проверки типов.Даже это не работает:

Element implicitly has an 'any' type because type 'ReadableStream<Uint8Array>' has no index signature.

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

...