首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >构造角界面文件和用户定义的类型守卫的约定

构造角界面文件和用户定义的类型守卫的约定
EN

Stack Overflow用户
提问于 2017-05-22 12:56:14
回答 1查看 1.7K关注 0票数 0

我在我的Range2项目中使用了接口,还创建了用户定义的Type Guards:

grid-metadata.ts

代码语言:javascript
复制
export interface GridMetadata {
  activity: string;
  createdAt: object;
  totalReps: number;
  updatedAt: object;
}

grid.service.ts

代码语言:javascript
复制
...
    function isGridMetadata(obj: any): obj is GridMetadata {
      [ 'activity', 'createdAt', 'totalReps', 'updatedAt' ].every((prop) => {
        if (obj.hasOwnProperty(prop) === false) return false;
      });

      return typeof obj.activity === 'string' &&
        obj.createdAt.hasOwnProperty('.sv') &&
        obj.createdAt['.sv'] === 'timestamp' &&
        typeof obj.totalReps === 'number' &&
        obj.updatedAt.hasOwnProperty('.sv') &&
        obj.updatedAt['.sv'] === 'timestamp' ?
          true :
          false;
    }
...

用于存储(即在文件结构中)接口的约定是什么;例如,它们应该在自己的文件中还是在interfaceutil目录或文件中?

存储共享用户定义的类型警卫的约定是什么?将接口和UDTG放在同一个文件中(因为它们是相关的)还是将所有的UDTG都放在一个共享模块中是有意义的吗?

在构建我的项目时,我找不到任何关于最佳实践或普遍接受的惯例的实例。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-22 13:06:49

如果我理解得很好,角度就是把每一样东西都放在正确的位置。

这就是为什么我们有这样一个结构:

  • +用户
    • user.ts
    • user-profile.ts
    • user-dashboard.component.ts
    • user-dashboard.component.html
    • users.service.ts
    • users.module.ts

其中+User将是用户的文件夹。

  • 据说,user.ts可能是UserInterface
  • user-profile.ts可以是Class实现UserInterface
  • user-dashboard.component.ts可以是用户的仪表板组件。可能扩展了Class类的UserProfile

等等..。

这就是我如何看到一些OOP项目的结构,以及我如何解释的角度的发展,希望它是。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44113446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档