2016-08-18 39 views
1

Accord樣式指南angular2,告訴:「考慮在較低駱駝情況下拼寫const變量。」 「在UPPER_SNAKE_CASE命名常數的傳統體現了現代IDE之前的時代,迅速揭示常量聲明。打字稿本身防止意外的重新分配」angular2教程,const變量的樣式指南

https://angular.io/styleguide#!#03-02

但angular2教程中使用了app.component.ts文件(英雄陣列),請使用UPPER_SNAKE_CASE

import { Hero } from './hero'; 
    export const HEROES: Hero[] = [ 
     {id: 11, name: 'Mr. Nice'}, 
     {id: 12, name: 'Narco'}, 
     {id: 13, name: 'Bombasto'}, 
     {id: 14, name: 'Celeritas'}, 
     {id: 15, name: 'Magneta'}, 
     {id: 16, name: 'RubberMan'}, 
     {id: 17, name: 'Dynama'}, 
     {id: 18, name: 'Dr IQ'}, 
     {id: 19, name: 'Magma'}, 
     {id: 20, name: 'Tornado'} 
    ]; 

爲什麼?

+0

很可能是因爲本教程是在風格指南之前編寫的。 –

+0

好的;教程被改寫爲每個新的角度版本,所以我發現他們不會更改教程的樣式指南,沒關係,謝謝 – stackdave

+0

我認爲UPPER_SNAKE_CASE在Angular代碼中仍然很常見。風格指南是相當新的。我想他們寧願立即將所有UPPER_SNAKE_CASE切換到lowerCamelCase,以避免不一致(部分代碼以及其他方式)。只要這在Angular2代碼中很常見,它也會出現在其他部分(文檔教程)中。我想https://github.com/angular/angular.io倉庫中的一個bug報告會很合適。 –

回答

0

恕我直言有命名包含文字/文字的結構或變量來一個const常量之間的差異:

我UPPER_SNAKE_CASE這樣的:

const API_URL = "http://www.example.com"; 

這lowerCamelCase:

for (var i = 0; i < 10; i++) { 
    const maxHeightOfVehicle = bridges[i].height - 10; 

    console.log(maxHeightOfVehicle); 
} 

儘管maxHeightOfVehicle在技術上是一個常數,但並不意味着它不會隨着時間的推移而有不同的值。

API_URL另一方面是一個文字使它成爲「真正的常量」;

因此,儘管不再需要它來防止您更改常量,但它仍會告訴您有關您正在處理的事情。

所以在英雄之旅的情況下,我寧願保留HEROES大寫,因爲它是一個文字結構。一個明確定義的常數。