【发布时间】:2017-04-23 00:47:22
【问题描述】:
如何在一个组件中使用多个构造函数?目前我收到错误:
'不允许多个构造函数实现'。
questions: any[];
constructor( service: QuestionSignupStepOneService ) {
this.questions = service.getQuestions();
}
constructor( service: QuestionSignupStepOneAService ) {
this.questions = service.getQuestions();
}
有没有办法简化我想要做的事情?代码可以正确编译,但只会运行第一个服务,而忽略第二个。
2021 年编辑:我很久以前就意识到这是一个愚蠢的问题,但我将把它搁置起来,因为如果我对构造函数的理解不够,无法提出这个问题,那么其他人也可能会发现自己在这里
【问题讨论】:
-
不能用逗号吗:
constructor( service: QuestSignupStepOneService, serviceA:QuestionSignupStepOneAService)? -
你想做什么?多态性?
-
@Kilmazing 我不这么认为。现在出现此错误:错误 TS2304:找不到名称“QuestSignupStepOneService”。
questions: any[]; constructor( service: QuestSignupStepOneService, serviceA: QuestionSignupStepOneAService ) { this.questions = service.getQuestions(); this.questions = serviceA.getQuestions(); } -
@anthonyc 看来我是……也许我把事情复杂化了
-
@EricBerndt,应该是
QuestionSignupStepOneService而不是QuestSignupStepOneService?我想应该在注册服务的 app.js 文件中完成,比如if(yourUseCase){module.service('QuestionSignupStepOneService ', QuestionSignupStepOneService );}else{module.service('QuestionSignupStepOneService ', QuestionSignupStepOneAService )
标签: angular