首页 > 解决方案 > 如何定义一个类型来检查一个对象是否包含一个 id 键?

问题描述

有没有办法定义一个接口,以便它可以包含任意数量的键,但必须包含id键?

interface HasId{
   id: number
}

可以定义这样的东西,但如果数据结构中有另一个键,它将输出错误。

标签: typescript

解决方案


是的,实际上你需要创建一个字典类型。有关高级类型的更多信息。

interface HasId {
    id: number;
    [key: string]: number;
}

你也可以让它更通用

interface IDictionary<T> {
    [key: string]: T;
}

interface HasId extends IDictionary<number> {
    id: number;
}

推荐阅读