Ole*_*Ole 12 javascript typescript ecmascript-6 angular
该源代码具有@Input以!. 这是一个例子:
@Input() token!:StripeToken
Run Code Online (Sandbox Code Playgroud)
为什么在这种情况下有用!?一些评论指出它是一个非空断言运算符,但为什么在这个特定场景中它有用(或者可能没用)?
我认为这个问题的答案是,对于 Angular@Input属性来说,在属性末尾具有非空断言永远没有意义,但我想看看你们其他人是怎么想的?
我在一个新的 Angular 项目上尝试过,但收到以下错误:
明确的赋值断言 '!' 在这种情况下不允许。ts(1255)
!所以我认为将运营商纳入财产是没有意义的@Input。这是一个屏幕截图:
fri*_*doo 17
它们使用编译器选项strictPropertyInitialization,因此任何未使用类型声明且未undefined直接初始化或在构造函数中初始化的类属性都会产生错误 TS2564。
为了防止这个编译器错误,他们使用明确赋值断言修饰符来告诉 TypeScript
\n\n\n\n\n\n\n\n\n\n\n...确实为所有意图和目的分配了一个变量,即使 TypeScript\xe2\x80\x99s 分析无法检测到这一点。
\n
您没有在示例中指定title变量的类型,这就是您收到错误 TS1255 的原因。在这种情况下使用!是可能的并且有意义!
| 归档时间: |
|
| 查看次数: |
5351 次 |
| 最近记录: |