定义类似单身的容器对象......并保持tslint的快乐

时间:2016-02-21 21:32:14

标签: typescript tslint

我有一个大型的TypeScript项目,并且最近添加了tslint以强制执行一些基本的代码样式规则。这在很大程度上是无痛的,但有一件事我还在质疑。

我有一些代码,我有一个类似单身的对象,它包含了一些属性和函数。想象一下:

function open(x) {...};
function close(x) {...};
let isOpen = false;

export const MainMenu {
    open,
    close,
    isOpen
};

但问题是tslint抱怨MainMenu的命名,因为我告诉它强制执行camelCase变量名。在所有情况下,除了这个,公约都是正确的,在这样的情况下,我认为大写(MathReflect等都是正确的。所有都遵循这个惯例。

那我该怎么办?我可以在发生这种情况时禁用规则,或者namespace概念更适合这个?但后来我使用外部模块,所以我不知道是否应该。另外,namespace - s使添加属性成员变得更加困难。

欢迎任何建议。

1 个答案:

答案 0 :(得分:2)

一般来说,这似乎更像是我使用namespace的区域(或者可能是一个单独的外部模块?然后在您当前的模块中,您可以重新导出它。)

但是,假设您确实希望以这种方式做事,并且您希望让TSLint感到高兴。最简单的解决方案是暂时禁用variable-name

/* tslint:disable:variable-name */
export const MainMenu {
    open,
    close,
    isOpen
};
/* tslint:enable:variable-name */

(请注意,您可以将重新启用的评论移动几行 - 我只是喜欢它用于审美目的。)

您的tslint.json文件中还有一个当前功能请求for a way to exclude specific variables from this rule。所以可能是一个选择!