Создание экземпляра сгенерированного объекта в Angular 7 - PullRequest
0 голосов
/ 05 июня 2019

Мы используем сгенерированные комиссионные объекты на многих языках, но я не могу понять, как создавать экземпляры объектов в js / ts.

Вот сгенерированный модуль ts Network_Test_types.d.ts:

//
// Autogenerated by Thrift Compiler (0.12.0)
//
// DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
//

declare module Rockit {
  class TestObject {
    stringValue: string;

      constructor(args?: { stringValue: string; });
  }
}

Вот сгенерированный исходный js-источник Network_Test_types.js:

  //
  // Autogenerated by Thrift Compiler (0.12.0)
  //
  // DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  //

  if (typeof Rockit === 'undefined') {
    Rockit = {};
  }
  Rockit.TestObject = function(args) {
    this.stringValue = null;
    if (args) {
      if (args.stringValue !== undefined && args.stringValue !== null) {
        this.stringValue = args.stringValue;
      } else {
        throw new Thrift.TProtocolException(Thrift.TProtocolExceptionType.UNKNOWN, 'Required field stringValue is unset!');
      }
    }
  };
  Rockit.TestObject.prototype = {};
  Rockit.TestObject.prototype.read = function(input) {
    input.readStructBegin();
    while (true) {
      var ret = input.readFieldBegin();
      var ftype = ret.ftype;
      var fid = ret.fid;
      if (ftype == Thrift.Type.STOP) {
        break;
      }
      switch (fid) {
        case 1:
        if (ftype == Thrift.Type.STRING) {
          this.stringValue = input.readString().value;
        } else {
          input.skip(ftype);
        }
        break;
        case 0:
          input.skip(ftype);
          break;
        default:
          input.skip(ftype);
      }
      input.readFieldEnd();
    }
    input.readStructEnd();
    return;
  };

  Rockit.TestObject.prototype.write = function(output) {
    output.writeStructBegin('TestObject');
    if (this.stringValue !== null && this.stringValue !== undefined) {
      output.writeFieldBegin('stringValue', Thrift.Type.STRING, 1);
      output.writeString(this.stringValue);
      output.writeFieldEnd();
    }
    output.writeFieldStop();
    output.writeStructEnd();
    return;
  };

Я попытался импортировать модуль в такой компонент

import { Rockit } from '../assets/gen-js/Network_Test_types';

, но выглядит угловатымдля файла с именем Network_Test_types.d.js вместо того, что у меня есть с расширением .ts.

Итак, мои вопросы: а) что я импортирую и б) как я создаю объект?

...