使用 Typescript 导入 AWS X 射线

Posted

技术标签:

【中文标题】使用 Typescript 导入 AWS X 射线【英文标题】:AWS X-ray import with Typescript 【发布时间】:2020-03-21 15:41:21 【问题描述】:

我目前在我的 lambda 中使用 postgresql-node

import  Client  from 'pg'

我想使用 AWS X-ray 检测 Postgresql 库。 Nodejs 示例有这一行:

var AWSXRay = require('aws-xray-sdk');
var pg = AWSXRay.capturePostgres(require('pg'));

我如何将其中的第二行转换为正确的 Typescript。我提出的所有变体都会产生一些错误或警告。例如,我猜这会起作用:

const pg = AWSXRay.capturePostgres(require('pg'))

但不仅你会收到 ESlint 警告,因为 require 在没有 import 的情况下被使用,但之后 pg.Client 会说 pg namespace not found

【问题讨论】:

【参考方案1】:

嗯,它有点难看,但这似乎有效:

import * as pg from 'pg'
const patchedPg = AWSXRay.capturePostgres(pg)

【讨论】:

我只见过这种方法。 这个答案中的 sn-p 是正确的。这是定义 capturePostgres 的 TS definition - 它使用通配符导入来定义 pg。我会更新该文档。

以上是关于使用 Typescript 导入 AWS X 射线的主要内容,如果未能解决你的问题,请参考以下文章

如何将生命周期策略添加到 AWS CDK Typescript 中的现有 S3 存储桶

错误:“无法从上下文中获取当前子/段”在 Lambda 中使用 AWS X-ray 和 node.js

【无机纳米材料科研制图——OriginLab 0206】Origin绘制X射线衍射XRD堆叠图

vscode typescript:“添加所有缺少的导入”快捷方式

害羞的伦琴是如何掀起X-射线狂热的?

害羞的伦琴是如何掀起X-射线狂热的?