【发布时间】:2017-03-28 00:56:00
【问题描述】:
根据offical style guide你应该
避免在私有属性和方法前加上下划线。
由于我来自 Java 背景,我通常只会使用 this 关键字:
export default class Device {
private id: string;
constructor(id: string) {
this.id = id;
}
public get id(): string { // [ts] Duplicate identifier 'id'.
return this.id;
}
public set id(value: string) { // [ts] Duplicate identifier 'id'.
this.id = value;
}
}
但 TypeScript 编译器抱怨:[ts] Duplicate identifier 'id'.
TypeScript 构造函数中的参数命名是否有约定或最佳实践?
使用 TypeScript 的 get 和 set 属性会产生错误。
有没有办法遵循样式指南并使用 TypeScript 的 get/set 属性?
【问题讨论】:
-
不幸的是,以最佳实践为中心的问题并不适合 Stack Overflow,因为它们主要会产生基于意见的答案(“我喜欢这样做......”,“人们通常使用这个...... 。”)。虽然您可能会根据作者认为的“最佳实践”看到其他问题的答案,但专门询问它们是题外话。有关详细信息,请参阅help center。您可能希望从问题中删除偏离主题的部分,而只关注技术问题。
-
不,the compiler doesn't complain。你的例子是有效的。
-
对不起,我更新了我的问题,我错过了一些实际上导致错误的代码。
-
你不能拥有它,因为它们最终都作为同一个 js 对象的属性。
-
在您的情况下,您可以将
get id()/set id(val)替换为简单的实例变量id,声明为公共。更易于阅读和书写,性能更高。
标签: angular typescript parameters naming-conventions