這是一個問題,可能沒有一個單一的正確答案,因爲我意識到編碼風格是相當多樣的,特別是在不同的語言之間,例如在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可能僅用於例如在一個返回具體實例的工廠(如果不是工廠,那麼可能仍然只在應用程序的極少數地方與接口的出現次數相比較)。 –