假设我有一个仅描述我感兴趣的字段的接口:
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,但找不到适用于此情况的任何内容。
答案 0 :(得分:0)
您可以添加索引器,该索引器允许任何具有任何值的键
它看起来像这样:
interface RestResponse {
data: {
name: string;
value: number;
}
status: number;
[key: string]: any;
}
[key: string]: any
是对象索引器。
[key: string]
指定您可以将任何密钥添加到string
类型的对象中
索引器后面的: any
定义键的值应为any
,并且由于any
允许任何内容-您可以添加任何内容