code: function data(selector, bindImmediate) {
      return function (target, propertyKey) {
          var metaTarget = target instanceof _angular_1.DataObserver ? target : target.constructor;
          var bindingsMeta = Reflect.getMetadata(constance_1.STATEX_DATA_BINDINGS_KEY, metaTarget);
          if (!Reflect.hasMetadata(constance_1.STATEX_DATA_BINDINGS_KEY, metaTarget)) {
              bindingsMeta = { selectors: {}, subscriptions: [], destroyed: !bindImmediate };
          }
          bindingsMeta.selectors[propertyKey] = selector;
          if (bindImmediate) {
              bindingsMeta.subscriptions.push({
                  target: target,
                  subscription: bindData(target, propertyKey, selector)
              });
          }
          Reflect.defineMetadata(constance_1.STATEX_DATA_BINDINGS_KEY, bindingsMeta, metaTarget);
      };
  }
docs: Add @data meta
  
  @export
  @param {*} target
  @param {any} propertyKey
  @param {any} selector
  @param {any} bindImmediate