我正在熟悉vue中typescript的使用。当阅读vue属性装饰器的留档时,我无法理解此声明代表什么
@Prop({ default: 'default value' }) readonly propB!: string
在这个特定的情况下,使用刘海运算符是因为您知道您的属性prob
不能是null
或undesign
,因为装饰器负责填写值。TypeScript不知道这一点,并且由于您没有直接或在构造函数中分配值,它期望类型签名是string|undesign
。感叹号告诉TypeScript您知道该值永远不会是未定义
,并且将签名简化为string
,而不会抱怨它是未定义
的可能性。
只有当您将TypeScript编译器选项设置为严格
时,您才需要这个(强烈鼓励这样做!)。