这是一个问题,可能没有一个单一的正确答案,因为我意识到编码风格是相当多样的,特别是在不同的语言之间,例如在JavaScript中的驼峰案例函数名称与C#中的pascal套管方法。我完全可以接受这一点。Typescript接口的样式指南
也许我对此感到担心,但我刚开始研究打字稿,真的很喜欢它的外观,并打算将它与Angular2一起使用,并希望建立一个良好的风格指南。
我真的没有得到的是第2点here,不要使用I前缀作为接口。在此之前,我认为这几乎是普遍的。我有一个班车,所以一个自然的名字,如果界面只是在前面添加一个我... ICar。只要你看到我的前缀,你就知道你有一个接口。
我想遵循任何建议的做法,但这一个我真的不知道为什么要去。
没有人知道为什么,我认为是一个几乎普遍的约定,在这里感到沮丧吗?我知道你可以使用任何你喜欢的约定,只是想知道这个常见约定是否有一些原因不能用在Typescript中。
在此先感谢您的任何意见/信息!
感谢您的反馈意见。当你为了多形态的原因使用接口时,FancyCar实现了Car等参数。说一个Angular服务,将会有一个例子,例如'FileSystemService','UserService',我们可以将它们全部实现到一个接口,所以我们总是将接口而不是具体类注入服务使用者。这样就可以轻松地模拟类到接口等。这意味着您需要为每个服务的接口考虑一个替代名称,而不是简单的前缀(例如'IFileSystemService','IUserService')。 – peterc
再次感谢您的意见。我想我们可以使用后缀而不是前缀,但直到同样的事情到底是不是?我想我们也会使用'FileSystemServiceInterface'。我在接口中看到了很多带有“I”的教程(由js中的高度尊重的权威人士),这就是为什么我最初认为它会遵循类似的惯例来使用基于lclass的语言,例如C#(它全部使用它时间),以及为什么当我后来看到风格指南时感到惊讶,并且它特别针对这一个惯例。所有的思想食物。 – peterc
我认为我的意图是,如我以前的评论所述,不要在**接口**上使用前缀或后缀,因为这通常是整个应用程序中使用的前缀或后缀,而UserServiceImpl可能仅用于例如在一个返回具体实例的工厂(如果不是工厂,那么可能仍然只在应用程序的极少数地方与接口的出现次数相比较)。 –