【发布时间】:2017-05-22 12:42:28
【问题描述】:
Angular 样式指南提到了导入行距:
- 考虑在第三方导入和 应用程序导入。
- 考虑列出按字母顺序排列的导入行 模块。
- 考虑列出已解构的导入符号 按字母顺序。
- 为什么?空行将您的东西与他们的东西分开 东西。
- 为什么?按字母顺序排列可以更轻松地阅读和定位符号。
查看包括 Angular 本身在内的许多 Angular 项目,惯例是首先导入 Angular (@angular) 模块,然后是第三方模块(例如 AngularFire2),然后是我们自己的模块(服务、组件等),例如./some-service.ts.
这似乎是导入服务的惯例,然后是模型,然后是组件。
但是接口和管道等呢?导入“无名”或通配符模块的约定是什么,例如Firebase SDK 或 RxJs 运营商?
例如:
导入 RxJs 运算符的示例服务
import { Injectable } from '@angular/core';
import { AngularFireAuth } from 'angularfire2/auth';
import {
AngularFireDatabase,
FirebaseListObservable
} from 'angularfire2/database';
import * as firebase from 'firebase/app';
import 'rxjs/add/operator/take';
...
或者
import { Injectable } from '@angular/core';
import {
AngularFireDatabase,
FirebaseListObservable
} from 'angularfire2/database';
import * as firebase from 'firebase/app';
import { Observable } from 'rxjs/Observable';
import { AuthService } from './auth.service';
// `GridMetadata` is an Interface
import { GridMetadata } from './grid-metadata';
...
【问题讨论】:
-
这不是 SO 的问题。如果风格指南对此一无所知,则由您自行决定。我个人按字母顺序维护导入,核心依赖项(@angular 和 rxjs)排在其他第三方之前,第一方排在最后。
标签: angular convention