事件发射器通用参数类型是否由angular4中的tsc检查?

时间:2017-09-21 02:09:12

标签: angular typescript eventemitter

考虑这段代码

@Component({
    selector : 'child',
    template : `
        <button (click)="sendNotification()">Notify my parent!</button>
    `
})
class Child {
    @Output() notifyParent: EventEmitter<string> = new EventEmitter();
    sendNotification() {
        this.notifyParent.emit('Some value to send to the parent');
    }
}

@Component({
    selector : 'parent',
    template : `
        <child (notifyParent)="getNotification($event)"></child>
    `
})
class Parent {
    getNotification(evt: boolean) {
        // Do something with the notification (evt) sent by the child!
    }
}

技术上getNotification(evt: boolean)的参数类型错误,但是tsc不会抛出错误?我也尝试了多个事件类型对组合,只要类型在范围内,它们似乎都没有达到错误。

事实上,无论何时传入$event,似乎ngcli tsc都会忽略类型参数。

例如

(ngModelChange)="selectTest($event)"

selectTest(test: anyType) {

}

以上将始终编译。

我做错了吗?

注意:我正在使用ng-cli ie。 ng serve

这是我正在使用的版本

@angular/cli: 1.3.2
node: 8.2.1
os: darwin x64
@angular/animations: 4.3.6
@angular/common: 4.3.6
@angular/compiler: 4.3.6
@angular/core: 4.3.6
@angular/forms: 4.3.6
@angular/http: 4.3.6
@angular/platform-browser: 4.3.6
@angular/platform-browser-dynamic: 4.3.6
@angular/router: 4.3.6
@angular/cli: 1.3.2
@angular/compiler-cli: 4.3.6
@angular/language-service: 4.3.6

0 个答案:

没有答案