mirror of https://github.com/vuejs/core.git
parent
b29bc0d694
commit
b2dc95378d
|
@ -31,7 +31,12 @@ export function inject<T>(key: InjectionKey<T> | string): T | undefined
|
|||
export function inject<T>(
|
||||
key: InjectionKey<T> | string,
|
||||
defaultValue: T,
|
||||
treatDefaultAsFactory?: boolean
|
||||
treatDefaultAsFactory?: false
|
||||
): T
|
||||
export function inject<T>(
|
||||
key: InjectionKey<T> | string,
|
||||
defaultValue: T | (() => T),
|
||||
treatDefaultAsFactory: true
|
||||
): T
|
||||
export function inject(
|
||||
key: InjectionKey<any> | string,
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
import { provide, inject, InjectionKey, expectType } from './index'
|
||||
|
||||
const key: InjectionKey<number> = Symbol()
|
||||
|
||||
provide(key, 1)
|
||||
// @ts-expect-error
|
||||
provide(key, 'foo')
|
||||
|
||||
expectType<number | undefined>(inject(key))
|
||||
expectType<number>(inject(key, 1))
|
||||
expectType<number>(inject(key, () => 1, true /* treatDefaultAsFactory */))
|
||||
|
||||
expectType<() => number>(inject('foo', () => 1))
|
||||
expectType<() => number>(inject('foo', () => 1, false))
|
||||
expectType<number>(inject('foo', () => 1, true))
|
Loading…
Reference in New Issue