From be27bbc5ad4eccdb28525e078a1afe20dd9e8dbd Mon Sep 17 00:00:00 2001 From: Carlos Rodrigues Date: Wed, 16 Sep 2020 14:29:42 +0100 Subject: [PATCH] types(defineComponent): fix missing exported types (#2124) --- packages/runtime-core/src/index.ts | 5 ++++- test-dts/defineComponent.test-d.tsx | 23 ++++++++++++++++++++++- test-dts/tsconfig.build.json | 10 +++++++++- 3 files changed, 35 insertions(+), 3 deletions(-) diff --git a/packages/runtime-core/src/index.ts b/packages/runtime-core/src/index.ts index bc6cedb51..75dd69fbe 100644 --- a/packages/runtime-core/src/index.ts +++ b/packages/runtime-core/src/index.ts @@ -174,8 +174,11 @@ export { ComponentOptionsWithArrayProps, ComponentCustomOptions, ComponentOptionsBase, - RenderFunction + RenderFunction, + MethodOptions, + ComputedOptions } from './componentOptions' +export { EmitsOptions, ObjectEmitsOptions } from './componentEmits' export { ComponentPublicInstance, ComponentCustomProperties diff --git a/test-dts/defineComponent.test-d.tsx b/test-dts/defineComponent.test-d.tsx index 59d6a3bcb..98f8018e2 100644 --- a/test-dts/defineComponent.test-d.tsx +++ b/test-dts/defineComponent.test-d.tsx @@ -10,7 +10,8 @@ import { expectType, ComponentPublicInstance, ComponentOptions, - SetupContext + SetupContext, + h } from './index' describe('with object props', () => { @@ -900,3 +901,23 @@ describe('async setup', () => { // setup context properties should be mutable vm.a = 2 }) + +// check if defineComponent can be exported +export default { + // function components + a: defineComponent(_ => h('div')), + // no props + b: defineComponent({ + data() { + return {} + } + }), + c: defineComponent({ + props: ['a'] + }), + d: defineComponent({ + props: { + a: Number + } + }) +} diff --git a/test-dts/tsconfig.build.json b/test-dts/tsconfig.build.json index 0ed6e46e0..6747eb10b 100644 --- a/test-dts/tsconfig.build.json +++ b/test-dts/tsconfig.build.json @@ -1,10 +1,18 @@ { "extends": "./tsconfig.json", "compilerOptions": { + "noEmit": false, "paths": { "@vue/*": ["../packages/*/dist"], "vue": ["../packages/vue/dist"] } }, - "exclude": ["../packages/*/__tests__", "../packages/*/src"] + "exclude": ["../packages/*/__tests__", "../packages/*/src"], + "include": [ + "../packages/global.d.ts", + "../packages/*/dist", + "../packages/runtime-dom/types/jsx.d.ts", + "../packages/*/__tests__", + "../test-dts" + ] }