Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 构造角度接口文件和用户定义类型保护的约定_Angular_Typescript_Conventions_Convention_File Structure - Fatal编程技术网

Angular 构造角度接口文件和用户定义类型保护的约定

Angular 构造角度接口文件和用户定义类型保护的约定,angular,typescript,conventions,convention,file-structure,Angular,Typescript,Conventions,Convention,File Structure,我在Angular 2项目中使用接口,并创建了用户定义的类型保护: 网格元数据.ts grid.service.ts 存储(即在文件结构中)接口的约定是什么;例如,它们应该在自己的文件中还是在接口或util目录或文件中 存储共享用户定义类型保护的约定是什么?将接口和UDTG放在同一个文件中(因为它们是相关的)或者将所有UDTG放在一个共享模块中有意义吗 在构建我的项目时,我找不到任何关于最佳实践或普遍接受的惯例的可靠例子 如果我能很好地理解的话,角度就是把每件事都放在正确的位置上 这就是为什么我

我在Angular 2项目中使用接口,并创建了用户定义的类型保护:

网格元数据.ts grid.service.ts 存储(即在文件结构中)接口的约定是什么;例如,它们应该在自己的文件中还是在
接口
util
目录或文件中

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


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

如果我能很好地理解的话,角度就是把每件事都放在正确的位置上

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

  • +使用者
    • user.ts
    • user-profile.ts
    • user-dashboard.component.ts
    • user-dashboard.component.html
    • users.service.ts
    • users.module.ts
其中,+用户将是用户的文件夹

  • user.ts
    可以是
    用户界面
  • user profile.ts
    可以是
    实现的
    用户界面
  • user dashboard.component.ts
    可以是用户的仪表板组件。可能扩展
    UserProfile
    类的
等等


这就是我如何看待一些OOP项目的结构,以及我如何解释Angular的开发人员希望它成为的样子。

如果我理解得很好,Angular就是要把每件事情都安排在正确的位置上

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

  • +使用者
    • user.ts
    • user-profile.ts
    • user-dashboard.component.ts
    • user-dashboard.component.html
    • users.service.ts
    • users.module.ts
其中,+用户将是用户的文件夹

  • user.ts
    可以是
    用户界面
  • user profile.ts
    可以是
    实现的
    用户界面
  • user dashboard.component.ts
    可以是用户的仪表板组件。可能扩展
    UserProfile
    类的
等等


这就是我所看到的一些OOP项目的结构,以及我如何解释Angular的开发人员希望它成为的样子。

我认为目标是将每个项目都放在单独的容器/文件/块/文件夹中。所以,在你的界面上有一个文件。实现该接口的类的文件。扩展该类的文件(例如),等等。我认为这是相当主观的。我经常看到有人说,一致性比你如何命名或把它放在哪里(合理的范围内)更重要。我认为目标是将每个东西都放在单独的容器/文件/块/文件夹中。所以,在你的界面上有一个文件。实现该接口的类的文件。扩展该类的文件(例如),等等。我认为这是相当主观的。我经常看到人们说,一致性比你如何命名或把它放在哪里(在合理的范围内)更重要。
export interface GridMetadata {
  activity: string;
  createdAt: object;
  totalReps: number;
  updatedAt: object;
}
...
    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;
    }
...