也许我对此过于担心,但我刚刚开始研究打字稿,非常喜欢它的外观,并计划将它与Angular2一起使用,并希望建立一个好的风格指南.
我真正没有得到的是第2点here,不要使用I前缀作为接口.在此之前,我认为这几乎是普遍的.我有一个类Car,所以如果界面只是在前面添加一个自然名称… ICar.只要看到我的前缀,就会知道你有一个界面.
我想遵循任何建议的做法,但这个我真的不知道为什么要去.
没有人知道为什么,我认为这是一个几乎普遍的惯例,在这里被劝阻了?我知道你可以使用你喜欢的任何约定,只是想知道这个常见约定是否有某些原因不能在Typescript中使用.
提前感谢任何意见/信息!
它类似于匈牙利符号,这被普遍认为是不好的做法.只要给它一个有意义的名字.如果你有不同种类的汽车而不是制造汽车的通用接口和类FancyCar实现汽车更自然.像前缀这样的东西只会阻止人们思考他们真正想要表达的内容.另见http://c2.com/cgi/wiki?IntentionRevealingNames
还有像Dart这样的语言(可能还有许多其他我不知道的),其中界面和类之间没有这么明显的区别.在Dart中,您可以实现任何类.类的接口只是一个接口.
更新
我不是说命名很容易.事实上,我认为它是软件开发中最难或最难的部分.只是因为“精英”的一般理由是技术原因的前缀并不是最好的方法.这并不意味着有替代方案只有优点而且没有缺点.在这种情况下,似乎使用了像UserService,UserServiceImpl,MockUserService这样的命名.这种方式在代码的大多数部分中使用UserService最自然的方式,而衍生工具仅在私有方中使用.否则,如上所述,一致性更为重要.如果某种风格在您使用的语言中更常见,我建议您也在代码中使用它.