# Vue Property Decorator
μμμ μ΄ν΄λ³Έ λ·° ν΄λμ€ μ»΄ν¬λνΈ(vue-class-component (opens new window)) λΌμ΄λΈλ¬λ¦¬ μ΄μΈμλ νμ μ€ν¬λ¦½νΈλ‘ λ·° μ»΄ν¬λνΈλ₯Ό μμ±ν λ μ μ©ν λΌμ΄λΈλ¬λ¦¬κ° μμ΅λλ€. λ·° νλ‘νΌν° λ°μ½λ μ΄ν°(Vue Property Decorator (opens new window)) λΌμ΄λΈλ¬λ¦¬μ λλ€.
TIP
μ°Έκ³ λ‘ λ·° νλ‘νΌν° λ°μ½λ μ΄ν° λΌμ΄λΈλ¬λ¦¬λ λ·° ν΄λμ€ μ»΄ν¬λνΈλ₯Ό κΈ°λ°μΌλ‘ μ μλμμ΅λλ€.
# λ§λ³΄κΈ° μ½λ
Vue Property Decoratorκ° μ μ©λ μ½λ μμμ λλ€.
<!-- Child.vue -->
<template>
<div class="hello">
<h1>{{ msg }}</h1>
</div>
</template>
<script lang="ts">
import { Vue, Component, Prop } from 'vue-property-decorator';
@Component
export default class Child extends Vue {
// '!'λ μ΄κΈ°ν μμ±μ λΆμ΄λ prefix (νμ
μ€ν¬λ¦½νΈμκ² λ―Έλ¦¬ μλ €μ£Όλ μν )
@Prop() private msg!: string;
}
</script>
μ μ»΄ν¬λνΈλ μμ μ»΄ν¬λνΈμμ msg
λΌλ props μμ±μ λ΄λ € λ°μ νμ μ»΄ν¬λνΈ μ½λμ
λλ€. μν¬νΈν Prop λ°μ½λ μ΄ν°λ‘ λ΄λ € λ°μ props μμ±μ μ μν΄μ£Όμμ΅λλ€. λ§μ½ νλ‘μ€ μμ±μ Props Validation (opens new window)μ μ£Όκ³ μΆλ€λ©΄ μλμ κ°μ΄ μ μνλ©΄ λ©λλ€.
@Prop(String) private msg!: string;
@Prop([String, Number]) private msg!: string;
@Prop({ default: 'hi' }) private msg!: string;
β How To Start Typescript Vuex Typing β