+-
Vue Property Decorator

@Component

export default {
  components:{
    componentA,
    componentB,
  }
}
import { Component, Vue } from 'vue-property-decorator';
@Component({
  components:{
    componentA,
    componentB,
  }  
})

@Prop

export default {
  props: {
    propA: {
      type: Number,
    },
    propB: {
      default: 'default value',
    },
    propC: {
      type: [String, Boolean],
    },
  },
}
import { Vue, Component, Prop } from 'vue-property-decorator'

@Component
export default class YourComponent extends Vue {
  @Prop(Number) readonly propA: number | undefined
  @Prop({ default: 'default value' }) readonly propB!: string
  @Prop([String, Boolean]) readonly propC: string | boolean | undefined
}
import 'reflect-metadata'
import { Vue, Component, Prop } from 'vue-property-decorator'

@Component
export default class MyComponent extends Vue {
  @Prop() age!: number
}

@Watch

@Watch('person', { immediate: true, deep: true })
  onPersonChanged1(val: Person, oldVal: Person) {}

@Emit

onInputChange(e) {
  this.$emit('on-input-change', e.target.value, e)
}
    
@Emit()
  onInputChange(e) {
    return e.target.value
  }
https://github.com/kaorun343/...