Предположим, у меня есть интерфейс, который описывает только те поля, которые меня интересуют:
interface RestResponse {
data: {
name: string;
value: number;
}
status: number;
}
Я хотел бы использовать этот интерфейс в качестве типа для реального ответа REST, в котором больше полей, чем указано выше.,Например:
const sampleResponse = {
data: {
name: 'cat',
value: 64,
description: 'the field I won't use anywhere'
}
status: 200,
isSuccessful: true
}
Вопрос в том, какой тип sampleResponse
должен быть?Я не могу сделать это:
const sampleResponse: RestResponse = { ... }
, потому что тип не имеет полей типа isSuccessful
и data.description
.
Это расширение RestResponse
.Я ожидаю, что в нем будут все поля, указанные в интерфейсе, но не возражаю против дополнительных полей.
До сих пор я пытался посмотреть на https://www.typescriptlang.org/docs/handbook/advanced-types.html,, но ничего не могу найтиполезно для этого случая.