只为对象的某些属性创建一个类型。

有没有办法只为一个对象的某些属性指定类型,而不是全部?例如,如果我有一些对象,如

const user_account = {id: 37593, created: "23/04/2020", last_active: "23/04/2020"};

而我只想说明 id 属于 number而其他一切都保持原样 any,有什么方法可以做到这一点?谢谢,有什么办法可以做到这一点吗?

解决方案:

你可以使用 串号 来表示所有的属性都符合一个特定的值类型;在你的例子中。any. 在索引签名之外添加到对象中的任何命名属性仍然必须符合该类型,但你可以使它们更加具体。 因为 number 是比较具体的 any你可以用以下方式表示你的类型 { [k: string]: any; id: number }.

所以…

const settings: { id: number, [k: string]: any } = 
  {id: 37593, created: "23/04/2020", last_active: "23/04/2020"};

应该适合您,这取决于您的用例。 请注意,这样的注解将拓宽您所使用的 settings 到注释类型,所以编译器不会记住任何没有在该类型中指定的内容。

settings.id; // known to be number
settings.created; // only known as any, not string
settings.randomPropName; // also known as any

好的,希望能帮到你,祝你好运!

代码的游戏场链接

给TA打赏
共{{data.count}}人
人已打赏
未分类

如何在HTML中加入图片而不在屏幕上显示出来?

2022-9-8 12:17:37

未分类

如何在php中比较两个响应?

2022-9-8 12:17:39

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索