关于进口行距,“角度样式指南”说:
考虑到许多角度项目,包括角本身,惯例是首先导入角(@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';
...发布于 2017-09-22 16:08:52
实际上,看看这个角度的代码基,随着对指南的更好的理解,就会有一个答案。
“考虑在第三方导入和应用程序导入之间留一条空行。”
这需要一个例子来解释:
// Core imports
import { TestBed, async, inject } from '@angular/core/testing';
// Third party imports
import { AngularFireAuth } from 'angularfire2/auth';
import { Observable } from 'rxjs/Rx';
import 'rxjs/add/observable/of';
// Application imports
import { AuthService } from './auth.service';
import { environment } from '../environments/environment';“考虑列出按模块按字母顺序排列的导入行。”
把‘模块’看作是“开始”之后的位。模块包含要导入的符号。
import { Injectable } from '@angular/core';
import { AngularFireAuth } from 'angularfire2/auth';
import * as firebase from 'firebase/app';
import { Observable } from 'rxjs/Rx';
import 'rxjs/add/observable/of';
import 'rxjs/add/operator/catch';符号是什么并不重要;只有导入行由模块按字母顺序排列才是重要的。例如:
在角码基中,小写字符列在大写字符或大写字符之后,因此:'rxjs/Rx‘列在’rxjs/add/可观/of‘和’rxjs/add/运算符/catch‘之前。
“考虑按字母顺序列出非结构化导入符号。”
import { TestBed, async, inject } from '@angular/core/testing';
import { AngularFireAuth } from 'angularfire2/auth';
import { Observable } from 'rxjs/Rx';
import 'rxjs/add/observable/of';将“析构导入符号”视为已从其父模块中提取的导出符号。在本例中,可观察到的AngularFireAuth、TestBed、异步和注入都是非结构化导入符号。
同样,顺序是字母化的;大写的先大写的,然后是小写的。下面是角代码库中的一个很好的例子:
import {CUSTOM_ELEMENTS_SCHEMA, Compiler, Component, Directive, Inject, Injectable, Injector, Input, NgModule, Optional, Pipe, SkipSelf, ɵstringify as stringify} from '@angular/core';似乎没有任何特定的顺序来导入服务、管道、模型、指令或组件等,查看角代码库
注意,父目录中的模块是在那些更接近被导入的模块之后导入的。
import { AuthService } from './auth.service';
import { environment } from '../environments/environment';
import { abc } from '.../abc';https://stackoverflow.com/questions/44113159
复制相似问题