Typescript 类受保护字段命名约定

Posted

技术标签:

【中文标题】Typescript 类受保护字段命名约定【英文标题】:Typescipt class protected field naming convention 【发布时间】:2020-01-31 10:55:59 【问题描述】:

我是 c# 开发人员,现在在 Angular 框架中启动 typescript,通常我会尝试创建一个受保护的字段并将 getter/setter 分配给它,如下所示:

export class Test 
    protected _id: number;
    constructor(id: number) 
        this.id = id;
    
    get id(): number 
        return this._id;
    
    set id(id: number) 
        this.id = id;
    

但是在 Angular 中,有命名字段的 lint 标准,它会在 _id 上出错。 我尝试将字段名称更改为 Id 但这违反了编程标准。 我该怎么办?

【问题讨论】:

@mbojko 你可能没有相同的 linting 规则。 我尝试为 NPM 打包一个库,它可能会通过所有测试和 linting 标准,并确保它会产生导致禁用规则的 linting 错误。如果你能帮我放弃一些解决方案,但没有负点:( 我认为 lint 是正确的,但在构造函数和 setter 中应该是 this._id = id; 通过在代码上方添加这一行来打开 tslint 规则错误 // tslint:disable-next-line: variable-name 【参考方案1】:

当您将鼠标悬停在错误/警告上时,您将看到错误描述和 TSLint 规则的名称。

您所要做的就是打开您的根tslint.json 并更改该规则的值。

我猜应该是variable-name,但你自己看吧。

PS:改变你的 linter 配置不是一个坏习惯:坏的做法是你的团队和你不遵循它。

【讨论】:

我们正在开发一个宏前端产品,我们无法在本地更改规则。 @MostafaSaadatnia 然后在任何地方更改您的 linting 规则。

以上是关于Typescript 类受保护字段命名约定的主要内容,如果未能解决你的问题,请参考以下文章

为啥子类不能使用基类受保护的构造函数创建新对象?

TypeScript 中类属性的命名约定

派生类 C++ 中基类受保护成员的访问声明为公共的

C ++为所有派生类初始化抽象基类受保护成员

C++ - 在派生类中静态初始化基类受保护的成员变量

Typescript(真的)是不是遵循泛型中参数化类型(T、U、V、W)的命名约定?