{
  "Vue 3 w/ Props (experimental)": {
    "scope": "vue",
    "prefix": ["script setup", "<script setup"],
    "description": "Vue 3 component with typed props",
    "body": [
      "<script setup lang=\"ts\">",
      "${1:$LINE_COMMENT $TM_FILENAME_BASE Component}",
      "",
      "import type { PropType } from 'vue'",
      "",
      "type MyCustomType = {",
      "  id: number",
      "  name: string",
      "}",
      "",
      "const props = defineProps({",
      "  myCustomObject: {",
      "    type: Object as PropType<User>,",
      "    required: true,",
      "  },",
      "  myStringArray: {",
      "    type: Array as PropType<string[]>",
      "  }",
      "})",
      "",
      "$LINE_COMMENT Access props with `props.myCustomObject` and `props.myStringArray`",
      "",
      "</script>",
      "",
      "<template>",
      "  <pre>{{ myCustomObject }}</pre>",
      "",
      "  <div v-for=\"(myString, key) of myStringArray\" :key=\"key\">",
      "    {{ myString }}",
      "  </div>",
      "</template>"
    ]
  }
}
