Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用typescript访问AWS SQS SendMessageResult中的$response属性?_Javascript_Typescript_Aws Lambda_Amazon Sqs_Aws Sqs Fifo - Fatal编程技术网

Javascript 如何使用typescript访问AWS SQS SendMessageResult中的$response属性?

Javascript 如何使用typescript访问AWS SQS SendMessageResult中的$response属性?,javascript,typescript,aws-lambda,amazon-sqs,aws-sqs-fifo,Javascript,Typescript,Aws Lambda,Amazon Sqs,Aws Sqs Fifo,我正在向SQS队列发送一条消息,如下所示: const queueName = 'some_queue_name'; const foo = 'foo'; const bar = 'bar'; const sqs = new AWS.SQS(); const SendMessageRequest: AWS.SQS.SendMessageRequest = { MessageBody: JSON.stringify({ foo, bar }), QueueUrl: queueName,

我正在向SQS队列发送一条消息,如下所示:

const queueName = 'some_queue_name';
const foo = 'foo';
const bar = 'bar';

const sqs = new AWS.SQS();
const SendMessageRequest: AWS.SQS.SendMessageRequest = {
  MessageBody: JSON.stringify({ foo, bar }),
  QueueUrl: queueName,
};

try {
  const request = sqs.sendMessage(SendMessageRequest, function (err, data) {
    if (err) {
      console.log('Error', err);
    } 
  });

  const smgResponse: SendMessageResult = await request.promise();

} catch (err) {
  console.log(err);
  expect(err).toBeUndefined();
}
在运行时,
SendMessageRequest
显示一个
$response
属性,但该属性在对象定义中不可见。运行时访问此属性的最佳方式是什么?

使用:

用运行时的任何类型的
$response
替换
unknown

如果要执行大量断言,可以为此创建一个新类型:

interface SendMessageResultWithResponse extends {
  $response: unknown
}

// alternatively type SendMessageResultWithResponse = SendMessageResult & {$response: unknown}

const smgResponse = await request.promise() as SendMessageResultWithResponse
interface SendMessageResultWithResponse extends {
  $response: unknown
}

// alternatively type SendMessageResultWithResponse = SendMessageResult & {$response: unknown}

const smgResponse = await request.promise() as SendMessageResultWithResponse