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