types(runtime-core): make FunctionalComponent with emit string[] to be Component (#1879)

fix #1847
This commit is contained in:
Carlos Rodrigues 2020-08-19 15:00:48 +01:00 committed by GitHub
parent 7f82428680
commit 4baf852a34
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 2 deletions

View File

@ -110,7 +110,7 @@ export interface ClassComponent {
__vccOpts: ComponentOptions
}
export type Component = ComponentOptions | FunctionalComponent<any>
export type Component = ComponentOptions | FunctionalComponent<any, any>
// A type used in public APIs where a component type is expected.
// The constructor type is an artificial type returned by defineComponent().

View File

@ -1,4 +1,9 @@
import { FunctionalComponent, expectError, expectType } from './index'
import {
FunctionalComponent,
expectError,
expectType,
Component
} from './index'
// simple function signature
const Foo = (props: { foo: number }) => props.foo
@ -51,3 +56,10 @@ expectError(<Foo />)
expectError(<Bar foo="bar" />)
// @ts-expect-error
expectError(<Foo baz="bar" />)
const Baz: FunctionalComponent<{}, string[]> = (props, { emit }) => {
expectType<{}>(props)
expectType<(event: string) => void>(emit)
}
expectType<Component>(Baz)