Мы используем сгенерированные комиссионные объекты на многих языках, но я не могу понять, как создавать экземпляры объектов в 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.
Итак, мои вопросы: а) что я импортирую и б) как я создаю объект?