【问题标题】:JSDOC: How to override/redefine type of a property from an existing type?JSDOC:如何从现有类型覆盖/重新定义属性的类型?
【发布时间】:2021-07-29 18:32:21
【问题描述】:

在 Meteor 中有一个类型:

    interface User {
        _id: string;
        username?: string | undefined;
        emails?: UserEmail[] | undefined;
        createdAt?: Date | undefined;
        profile?: any;
        services?: any;
    }

那么如何让 IntelliSense 将 User.profile 识别为我的类型 MyProfile

【问题讨论】:

  • 为什么不将配置文件定义为profile?: MyProfile 而不是profile?: any
  • 这是 Meteor 的代码,不是我的。

标签: javascript jsdoc


【解决方案1】:

您可以扩展User 接口并覆盖配置文件类型。

interface User {
  _id: string;
  username?: string | undefined;
  emails?: UserEmail[] | undefined;
  createdAt?: Date | undefined;
  profile?: any;
  services?: any;
}

interface MyProfile {
  image: string;
  name: string;
}

interface UserWrapper extends User{
  profile ?: Profile;
}

【讨论】:

  • 不,我不能。 Meteor.user() 返回一个 User 对象。永远不会自己实例化User 对象。
  • 或者我可以使用您的解决方案,然后创建一个调用 Meteor.user() 的新函数,然后返回 UserWrapper 的对象
猜你喜欢
  • 2013-04-05
  • 1970-01-01
  • 1970-01-01
  • 2017-08-22
  • 1970-01-01
  • 2018-08-31
  • 2019-08-12
  • 2019-09-29
  • 1970-01-01
相关资源
最近更新 更多