Javascript 如何使用typescript访问AWS SQS SendMessageResult中的$response属性?
我正在向SQS队列发送一条消息,如下所示: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,
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