0
我在兩個不同的文件中有兩個角度爲1的服務,並且我在第二個服務中使用第一個服務。如何在構造函數中輸入第一個服務,使打字稿和我自己快樂而不導入第一個服務?什麼是構造函數中的服務參數的正確類型和它應該來自哪裏
使用內部模塊它可以很容易,但在這種情況下,我無法正確加載文件。此外,我不能混用內部和外部模塊。
// app.module.ts
import angular from 'angular';
import FirstService from './first.service';
import SecondService from './second.service';
var app = angular.module('app', []);
app.service('firstService', FirstService);
app.service('secondService', SecondService);
export app;
// first.service.ts
class FirstService {
constructor() {}
}
export default FirstService;
// second.service.ts
class SecondService {
constructor(firstService: ??) { }
}
export default SecondService;
UPDATE
我可以讓ts很高興導入t他在第二個服務模塊:
import FirstService from './first.service';
class SecondService {
constructor(firstService: FirstService) { }
}
export default SecondService;
但是它是正確的嗎?我覺得我使DI某種方式與第二服務導入模塊作爲額外只是爲類型安全的破碎...
但是,如果我加入到這樣的構造:firstService:FirstService,比TSC犯規認識它,即使有這樣的出口(收到錯誤:無法找到名爲' FirstService」)。 – eesdil
您是否還更新了導入聲明(請參閱更新的答案)? –
是的,我試過了。奇怪的是,如果我爲FirstService(例如:名稱空間服務{class FirstService {}})放置一個名稱空間,而不是找到它(例如Services.FirstService)。但在這種情況下,我不能將其作爲外部模塊導入。 – eesdil