Я довольно хорошо знаком с Javascript, но у меня есть некоторые проблемы с воссозданием некоторых шаблонов, которые я использую в TypeScript, потому что я не уверен, как печатать функции, которые могут иметь различные поля JSON.Например, я пытался написать простую функцию http-запроса, которую я мог бы использовать:
async function requestTest (options: https.RequestOptions) {
const prom = new Promise((resolve, reject) => {
https.request(options, (res) => {
res.on('data', (d) => {
if (d.status == 200) {
resolve(d)
}
reject('failed')
})
})
return await prom
Однако, если я действительно хочу использовать эту функцию, скажем, запросить базу данных и получить результат, где "поле data »в ответе будет содержать данные известной структуры, для которой у меня объявлен интерфейс:
const getData = (opts): ISomeStructure => {
return requestTest(opts)
}
Я получаю ошибку типа:
Type 'Promise<{}>' is not assignable to type 'ISomeStructure'.
Как объявить типы таким образом, чтобы сообщить машинописи, что в этом случае я ожидаю, что в ответе http будет ключ, содержащий ISomeStructure
объект JSON?