項(xiàng)目命名
- 全部采用小寫方式, 以中劃線分隔
示例:my-project-name
目錄命名
- 參照項(xiàng)目命名規(guī)則
- 有復(fù)數(shù)結(jié)構(gòu)時,要采用復(fù)數(shù)命名法。
示例:scripts, styles, images, data-models
JS 文件命名
- 參照項(xiàng)目命名規(guī)則。
示例:account-model.ts
示例:scan-file.component.ts
CSS, SCSS 文件命名
- 參照項(xiàng)目命名規(guī)則。
示例:retina-sprites.scss
HTML 文件命名
- 參照項(xiàng)目命名規(guī)則。
示例:error-report.html
JS 命名規(guī)范
- js命名應(yīng)遵循 簡潔、語義化 的原則
angular 項(xiàng)目命名規(guī)范
文件命名規(guī)范
- 文件名采用feature.type.**,feature表示特性,type表示類型
- 模塊用 .module.ts
- 路由模塊用 -routing.module.ts【*目前模塊中既有.routing也有-routing】
- 組件用 .component.ts|html|css
- 服務(wù)用 .service.ts
- 管道用 .pipe.ts
- 指令用 .directive.ts
- 類型用 .model.ts
- 數(shù)據(jù)用 .data.ts
- 用"-"來分割單詞,比如hero-list.component.ts
- 單元測試文件名保持和測試對象一致,并以.spec.ts結(jié)尾
- 端到端測試文件名保持和測試對象一致,并以.e2e-spec.ts結(jié)尾
命名規(guī)范
模塊:比如app.module.ts定義的類名為AppModule
路由模塊:比如app-routing.module.ts定義的類名為AppRoutingModule
組件:比如hero-list.component.ts定義的類名為HeroListComponent
服務(wù):比如logger.service.ts定義的類名為LoggerService
管道:比如address.pipe.ts定義的類名為AddressPipe
指令:比如highlight.directive.ts定義的類名為HighlightDirective
類型:按模塊來劃分,一個.model.ts定義多個類型【*有疑義,我們的模塊比較大,model會很多】
數(shù)據(jù):比如address-book.data.ts定義的變量名為addressBook
-
腳本啟動入口的文件名規(guī)定為main.ts,里面不包括任何業(yè)務(wù)邏輯,但要記得處理失敗的情況
// main.ts
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';import { AppModule } from './app/app.module'; platformBrowserDynamic().bootstrapModule(AppModule) .then(success => console.log(`Bootstrap success`)) .catch(err => console.error(err)); 指令選擇器的命名采用小寫駝峰規(guī)則,比如clickOutSide
組件選擇器的命名采用分隔符“-”連接小寫字母的形式,比如hero-list
變量
- 命名方法: 小駝峰式命名法
- 命名規(guī)范:前綴為形容詞 (函數(shù)前綴為動詞, 以此來區(qū)分函數(shù)和變量)
- 支持ES6的環(huán)境下,禁止使用var定義變量
- 變量命名要求見名知意,控制在5個單詞以內(nèi),有常見縮寫形式的單詞可采用縮寫形式
// 好的命名方式
let maxCount = 10;
let tableTitle = 'tableTitle';
// 不好的命名方式
let setConut = 10;
let getTitle = 'getTitle';
常量
- 定義用const
- 全部大寫,如果有多個單詞,用“_”連接
const MAX_COUNT = 10;
const URL = '//www.huifenqi.com';
函數(shù) & 方法
- 命名方法: 小駝峰式命名法
- 命名規(guī)范: 前綴應(yīng)該為動詞
- 命名建議: 常用動詞約定
// 是否可閱讀
function canRead() {}
// 獲取名稱
function getName() {}
// 事件回調(diào)
function onSelectChange() {}
類 & 接口
- 命名方法:大寫駝峰式命名法,首字母大寫
- 命名規(guī)范:前綴為名稱
class Persion {
constructor(name) {
...
}
}
let person = new Person('TOM');
類的成員
- 類的成員包括:
公共屬性和方法:跟變量和函數(shù)命名一樣。
私有屬性和方法:用小寫駝峰
ts中,私有屬性和方法,用private修飾符,不建議以“”為前綴
ts中,公共屬性和方法,不需要寫修飾符,默認(rèn)是public
ts中,攔截屬性可以使用下劃線“”
class Person {
// 私有屬性
private name: string;
private _hobby: string;
constructor() { }
set hobby(hobby) {
this._hobby = hobby;
this.doSomething();
}
// 公共方法
getName() {
return this._name;
}
// 公共方法
setName(name) {
this._name = name;
}
}
示例
前綴 含義 類型
can 判斷是否可執(zhí)行某個動作 方法
get 獲取某個值 方法
set 設(shè)置某個值 方法
load 加載某些數(shù)據(jù) 方法
has 判斷是否含義某個值 boolean型變量
is 判斷是否為某個值 boolean型變量
nsOn Output輸出屬性 EventEmitter