我试图了解如何在官方Angular 2 http tutorial
中命名私有变量在上面链接的部分下面是一个名为app/toh/hero.service.ts
的文件,其中(主要)是:
@Injectable()
export class HeroService {
constructor (private http: Http) {}
private _heroesUrl = 'app/heroes';
getHeroes () {
return this.http.get(this._heroesUrl)
.map(res => <Hero[]> res.json().data)
.catch(this.handleError);
}
private handleError (error: Response) {
// in a real world app, we may send the server to some remote logging infrastructure
// instead of just logging it to the console
console.error(error);
return Observable.throw(error.json().error || 'Server error');
}
}
有一个私有变量_heroesUrl
。好的,所以存在一个使用下划线启动私有变量和方法的约定。
但是为什么private http
和private handleError
也没有使用下划线?这只是一个“错字”还是这个原因?
答案 0 :(得分:2)
这只是一个错字。对于TS,这不是强制执行,它只是一个惯例。在Angular2代码库中,一致地使用它来允许转换到Dart,其中_
不仅是约定而是private
关键字的替代(Dart中不存在)