Box.ts
32 lines
| 671 B
| video/mp2t
|
TypeScriptLexer
|
|
r108 | import { Builder } from "../di/Annotations"; | |
| import { Bar } from "./Bar"; | |||
| import { Foo } from "./Foo"; | |||
|
|
r107 | ||
|
|
r109 | const builder = new Builder<Box<Bar>, { bar: Bar; foo: Foo; obj: object }>(); | |
|
|
r107 | ||
|
|
r109 | @builder.provides() | |
| @builder.dependencies("bar") | |||
| export class Box<T> { | |||
| private _value: T | undefined; | |||
|
|
r108 | ||
|
|
r109 | constructor(value: T) { | |
| this._value = value; | |||
| } | |||
|
|
r107 | ||
|
|
r108 | @builder.inject("bar") | |
|
|
r107 | setValue(value: T) { | |
| this._value = value; | |||
| } | |||
|
|
r109 | ||
| @builder.inject("foo") | |||
| setObj(value: object) { | |||
| } | |||
|
|
r107 | getValue() { | |
|
|
r109 | if (this._value === undefined) | |
| throw new Error("Trying to get a value from the empty box"); | |||
|
|
r107 | return this._value; | |
| } | |||
|
|
r109 | } |
