如果像这样使用 `private fb: FormBuilder` 为什么 `FormBuilder` 的 DI 会失败

Why DI for `FormBuilder` fails if used like this `private fb: FormBuilder`

我正在尝试像这样将 FormBuilder class 注入到组件中:

@Component({
   ...
})
export class TaskComponent implements OnInit {
constructor(private fb: FormBuilder) {}

但是,它失败了,我收到错误消息:

(SystemJS) Can't resolve all parameters for TaskComponent: (?).↵ Error: Can't resolve all parameters for TaskComponent: (?).

如果我将构造函数更改为这种形式:

constructor(@Inject(FormBuilder) fb: FormBuilder) {    }

一切正常。有什么问题?

我没有

"emitDecoratorMetadata": true

tsconfig.json 中,因此这部分不是由 tsc 生成的:

TaskComponent = __decorate([
    core_1.Component({
        moduleId: module.id,
        selector: 'task',
        templateUrl: 'task.component.html',
        styleUrls: ['task.component.css']
    }),
    __metadata("design:paramtypes", [forms_1.FormBuilder])
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
], TaskComponent);