首页 > 解决方案 > Vue Property Decorator 上的感叹号代表什么

问题描述

我正在熟悉 vue 中 typescript 的使用。在阅读 vue property decorator 的文档时,我无法理解这个声明代表什么

@Prop({ default: 'default value' }) readonly propB!: string

标签: typescriptvue.js

解决方案


在这种特定情况下,使用 bang 运算符是因为您知道您的属性propB不能,null或者undefined装饰器负责填充值。TypeScript 不知道这一点,并且由于您没有直接或在构造函数中分配值,因此它期望类型签名为string | undefined. 感叹号告诉 TypeScript 你知道这个值永远不会是undefined,并将签名减少到stringonly 而不会抱怨它的可能性undefined

仅当您将 TypeScript 编译器选项设置为strict(强烈建议这样做!)时才需要它。


推荐阅读