# Comenzando
# Tipos en las Props
# Props
# Componente Contador
Con defineProps + <{ }> estamos utilizando typescript,defineProps es un tipo de función de vue.js macros del compilador que solo se pueden usar dentro de < script setup >
Contador.vue
<script setup lang="ts">
import { ref } from "vue";
const props = withDefaults(
defineProps<{
limite: number;
alertaLimiteMensajes?: string;
}>(),
{
alertaLimiteMensajes: "No puede ser mas alto",
}
);
const contador = ref<number | string>(0);
function incrementar(num: number) {
if (typeof contador.value === "number") {
if (contador.value >= props.limite) {
alert(props.alertaLimiteMensajes);
} else {
contador.value += num;
}
}
}
</script>
<template>
<div>
<p>{{ contador }}</p>
<button @click="incrementar(2)">Incrementar</button>
</div>
</template>
# Views HomeView
HomeView.vue
<template>
<h1>{{ infoApp.nombre }}</h1>
<h1>{{ infoApp.texto }}</h1>
<Contador
:limite="10"
:alerta-limite-mensajes='"No puede superar"'
/>
</template>