]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
feat(sfc/types): make `<script setup>` helper types available globally
authorEvan You <yyx990803@gmail.com>
Sun, 27 Jun 2021 01:12:22 +0000 (21:12 -0400)
committerEvan You <yyx990803@gmail.com>
Sun, 27 Jun 2021 01:12:26 +0000 (21:12 -0400)
packages/runtime-core/src/apiSetupHelpers.ts

index 493cb71395991c478a6390d7753d425a50de1d44..5f613ec21229a376a60c6a1712301f3636912d08 100644 (file)
@@ -11,6 +11,25 @@ import {
 } from './componentProps'
 import { warn } from './warning'
 
+/**
+ * The following helpers are compiler macros that are only usable inside
+ * `<script setup>`. They are essentially part of the `<script setup>` API and
+ * will be frequently used. Although they can be explicitly imported, they can
+ * actually be used directly inside `<script setup>` blocks. Their types are
+ * therefore also made globally available to ensure proper type inference.
+ */
+type _defineProps = typeof defineProps
+type _defineEmits = typeof defineEmits
+type _defineExpose = typeof defineExpose
+type _withDefaults = typeof withDefaults
+
+declare global {
+  const defineProps: _defineProps
+  const defineEmits: _defineEmits
+  const defineExpose: _defineExpose
+  const withDefaults: _withDefaults
+}
+
 // dev only
 const warnRuntimeUsage = (method: string) =>
   warn(