Box.ts
33 lines
| 772 B
| video/mp2t
|
TypeScriptLexer
|
|
r117 | import { Bar } from "./Bar"; | ||
|
|
r119 | import { define, dependency } from "./services"; | ||
|
|
r114 | |||
| // export service descriptor | ||||
|
|
r119 | // через service передается информация о типе зависимости | ||
| // даже если это шаблон. | ||||
| export const service = define<Box<Bar>>(); | ||||
|
|
r107 | |||
|
|
r119 | @service.declare(dependency("bar")) | ||
|
|
r109 | export class Box<T> { | ||
| private _value: T | undefined; | ||||
|
|
r108 | |||
|
|
r109 | constructor(value: T) { | ||
| this._value = value; | ||||
| } | ||||
|
|
r107 | |||
|
|
r119 | @service.inject(dependency("bar")) | ||
| setValue(value: T) { | ||||
|
|
r107 | this._value = value; | ||
|
|
r118 | return value; | ||
|
|
r107 | } | ||
|
|
r119 | setObj(value: any) { | ||
|
|
r109 | |||
| } | ||||
|
|
r107 | getValue() { | ||
|
|
r109 | if (this._value === undefined) | ||
| throw new Error("Trying to get a value from the empty box"); | ||||
|
|
r107 | return this._value; | ||
| } | ||||
|
|
r114 | } | ||
