export interface ProviderValue < T > { value ? : T ; } export const Provider = { defaultValue < T > ( ) { return { value : undefined } ; } , setValue < T > ( source , value ) { Object . defineProperty ( source , "value" , { get ( ) { return value ; } } ) ; } } ;