]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
test(types): component type check when props is an empty object (#7419)
authorRudy <xuhaodong66@foxmail.com>
Wed, 28 Aug 2024 09:48:10 +0000 (17:48 +0800)
committerGitHub <noreply@github.com>
Wed, 28 Aug 2024 09:48:10 +0000 (17:48 +0800)
ref #4051
ref #8825

packages-private/dts-test/defineComponent.test-d.tsx

index 79ce6d6956dffd5cb62671b1aaeda28c1a4bdddd..0124a8b15250b34c1393b932a6cd8a846dd66274 100644 (file)
@@ -480,6 +480,26 @@ describe('type inference w/ options API', () => {
   })
 })
 
+// #4051
+describe('type inference w/ empty prop object', () => {
+  const MyComponent = defineComponent({
+    props: {},
+    setup(props) {
+      return {}
+    },
+    render() {},
+  })
+  expectType<JSX.Element>(<MyComponent />)
+  // AllowedComponentProps
+  expectType<JSX.Element>(<MyComponent class={'foo'} />)
+  // ComponentCustomProps
+  expectType<JSX.Element>(<MyComponent custom={1} />)
+  // VNodeProps
+  expectType<JSX.Element>(<MyComponent key="1" />)
+  // @ts-expect-error
+  expectError(<MyComponent other="other" />)
+})
+
 describe('with mixins', () => {
   const MixinA = defineComponent({
     emits: ['bar'],