typescript - Vue Property Decorator 上的感叹号代表什么
问题描述
我正在熟悉 vue 中 typescript 的使用。在阅读 vue property decorator 的文档时,我无法理解这个声明代表什么
@Prop({ default: 'default value' }) readonly propB!: string
解决方案
在这种特定情况下,使用 bang 运算符是因为您知道您的属性propB
不能,null
或者undefined
装饰器负责填充值。TypeScript 不知道这一点,并且由于您没有直接或在构造函数中分配值,因此它期望类型签名为string | undefined
. 感叹号告诉 TypeScript 你知道这个值永远不会是undefined
,并将签名减少到string
only 而不会抱怨它的可能性undefined
。
仅当您将 TypeScript 编译器选项设置为strict
(强烈建议这样做!)时才需要它。
推荐阅读
- java - 来自 kafka 主题的消息的动态消费
- json - 如何使用 Swagger 2.0 或 OpenApi 3.x 在 API 对象中指定“JSON 原始消息”?
- python - 与使用 set(list(*zip(..))) 相比,生成唯一列表的复杂性是什么?
- python - 提取pdf文本中的多个字符串
- python - Python MySQL 多函数显示 InternalError: Unread result found
- java - Dagger 2 问题:没有参数的@Subcomponent.Builder 方法必须返回@Subcomponent 类型
- panel - 使用 stata 中的面板数据创建年率变量的语法
- python - Pandas Spearman 相关性的问题
- go - 如何衡量 gRPC 响应的大小
- database - 如何使用 JDeveloper 12c REST 适配器将数据从数据库发布到 REST?