| 1234567891011121314151617181920212223242526272829 |
- import { provide, inject, ref, Ref, InjectionKey } from 'vue'
- import { expectType } from './utils'
- provide('foo', 123)
- provide(123, 123)
- 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))
- // #8201
- type Cube = {
- size: number
- }
- const injectionKeyRef = Symbol('key') as InjectionKey<Ref<Cube>>
- // @ts-expect-error
- provide(injectionKeyRef, ref({}))
|