types(runtime-core): added `ComponentCustomProperties` type to `globalProperties` (#5389)

This commit is contained in:
nandi95 2022-10-26 10:00:47 +01:00 committed by GitHub
parent 83f7e6f8a6
commit 506a42a9a5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 3 deletions

View File

@ -11,7 +11,10 @@ import {
MergedComponentOptions, MergedComponentOptions,
RuntimeCompilerOptions RuntimeCompilerOptions
} from './componentOptions' } from './componentOptions'
import { ComponentPublicInstance } from './componentPublicInstance' import {
ComponentCustomProperties,
ComponentPublicInstance
} from './componentPublicInstance'
import { Directive, validateDirectiveName } from './directives' import { Directive, validateDirectiveName } from './directives'
import { RootRenderFunction } from './renderer' import { RootRenderFunction } from './renderer'
import { InjectionKey } from './apiInject' import { InjectionKey } from './apiInject'
@ -70,7 +73,7 @@ export interface AppConfig {
performance: boolean performance: boolean
optionMergeStrategies: Record<string, OptionMergeFunction> optionMergeStrategies: Record<string, OptionMergeFunction>
globalProperties: Record<string, any> globalProperties: ComponentCustomProperties & Record<string, any>
errorHandler?: ( errorHandler?: (
err: unknown, err: unknown,
instance: ComponentPublicInstance | null, instance: ComponentPublicInstance | null,

View File

@ -6,7 +6,7 @@ declare module '@vue/runtime-core' {
} }
interface ComponentCustomProperties { interface ComponentCustomProperties {
state: 'stopped' | 'running' state?: 'stopped' | 'running'
} }
interface ComponentCustomProps { interface ComponentCustomProps {
@ -35,6 +35,14 @@ export const Custom = defineComponent({
expectError(this.notExisting) expectError(this.notExisting)
this.counter++ this.counter++
this.state = 'running' this.state = 'running'
this.$.appContext.config.globalProperties.state = 'running'
expectError(
// @ts-expect-error
(this.$.appContext.config.globalProperties.state = 'not valid')
)
// @ts-expect-error // @ts-expect-error
expectError((this.state = 'not valid')) expectError((this.state = 'not valid'))
} }