即使参数不匹配,点击功能也会触发事件

问题描述

我有一个按钮,它触发了一个叫做check的函数(resp是我的html模板中的引用)

<button
(click)="check(resp)">
clickMe
</button>

我拥有的ts代码

check() {
console.log("check is clicked")
}

我可以看到我的控制台输出

但是我很困惑为什么check(Function)被成功调用,我不希望ts代码中有任何参数,但是我的模板代码传递了一个arg,我期待一个签名不匹配错误,为什么它能够成功调用? / p>

解决方法

Typescript在设计时而不是运行时强制执行类型检查。 HTML模板不是.ts文件的一部分,因此不会被编译。由于未编译,因此Typescript编译器看不到它。当应用运行时,其标准JS不会强制执行类型检查。