@@ -240,3 +240,18 export function bind(params: NodeBindSpe | |||||
240 | }; |
|
240 | }; | |
241 | } |
|
241 | } | |
242 | } |
|
242 | } | |
|
243 | ||||
|
244 | /** Создает в прототипе указанное свойство со значение `undefined`, данный | |||
|
245 | * декоратор следует использовать для свойств, у которых нет значения по-умолчанию | |||
|
246 | * и они не могут быть `null | undefined` | |||
|
247 | */ | |||
|
248 | export function prototype(): (p: any, name: string) => void; | |||
|
249 | /** Создает в прототипе свойство с указанным значением. | |||
|
250 | * @param value Значение, которое будет указано в прототипе | |||
|
251 | */ | |||
|
252 | export function prototype<T>(value: T): <P extends { [m in K]: T }, K extends keyof P>(p: P, name: K) => void; | |||
|
253 | export function prototype<T>(value?: T) { | |||
|
254 | return <P extends { [m in K]: T }, K extends keyof P>(p: P, name: K) => { | |||
|
255 | p[name] = value as any; | |||
|
256 | }; | |||
|
257 | } |
@@ -1,9 +1,11 | |||||
1 | import { _Widget } from "./WidgetContext"; |
|
1 | import { _Widget } from "./WidgetContext"; | |
2 | import { MapOf } from "@implab/core-amd/interfaces"; |
|
2 | import { MapOf } from "@implab/core-amd/interfaces"; | |
|
3 | import { prototype } from "../declare"; | |||
3 |
|
4 | |||
4 | /** Special widget used to create a document fragment */ |
|
5 | /** Special widget used to create a document fragment */ | |
5 | export class DjxFragment implements _Widget { |
|
6 | export class DjxFragment implements _Widget { | |
6 |
|
7 | |||
|
8 | @prototype() | |||
7 | domNode: Node; |
|
9 | domNode: Node; | |
8 |
|
10 | |||
9 | containerNode?: Node; |
|
11 | containerNode?: Node; |
General Comments 0
You need to be logged in to leave comments.
Login now