微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

找不到“请求”的类型定义文件:node_modules/@looker/sdk-rtl/lib/oauthSession.d.ts:1:23 中的错误 - 错误 TS2688

如何解决找不到“请求”的类型定义文件:node_modules/@looker/sdk-rtl/lib/oauthSession.d.ts:1:23 中的错误 - 错误 TS2688

我正在尝试将 Looker Embedded Client SDK 与 angular 集成,因此已安装 @looker/SDK 并根据官方 npm 页面上提供的指南配置设置,以便 @looker/sdk 访问 API。

但是当我尝试访问一些方法和类时,angular 应用程序开始失败。 外观
错误

Error: error waiting for EC2 Transit Gateway VPC Attachment (tgw-attach-xxxxxxxxx) deletion: unexpected state 'Failed',wanted target 'deleted'. last error: %!s(<nil>)

和配置:

ERROR in node_modules/@looker/sdk-rtl/lib/oauthSession.d.ts:1:23 - error TS2688: Cannot find type deFinition file for 'request'.

1 /// <reference types="request" />

解决方法

我不太精通 Angular,但我认为这个错误是一个红鲱鱼。您正在尝试在 angular 应用程序中使用 Looker SDK (LookerBrowserSDK) 的 Node 版本,这可能不会很好地工作。 NodeSDK 用于 Node.js 后端,我们提供 import { Looker31SDK,LookerBrowserSDK } from '@looker/sdk/lib/browser' 用于前端应用。

不幸的是,这不是很好的文档(我将尝试改进它),但我敢打赌,如果您尝试使用 browserSDK,您会取得更大的成功。

import { Looker31SDK,LookerBrowserSDK } from '@looker/sdk/lib/browser' import { ApiSettings,IApiSettings,IApiSection } from '@looker/sdk-rtl' /** * @class CustomConfigReader * * A custom configuration reader that overrides the readConfig() method * in NodeSettings to allow fetching client_id and client_secret * from anywhere. */ class CustomConfigReader extends ApiSettings { constructor(settings: IApiSettings) { super(settings) } /** * @returns an IApiSection object containing client_id and client_secret */ readConfig(): IApiSection { return { client_id: 'clientId',client_secret: 'clientSecret',} } } ;(async () => { const sdk = LookerBrowserSDK.init31( new CustomConfigReader({ base_url: 'https://<your-looker-server>:19999 or https://your.cloud.looker.com',} as IApiSettings) ) const me = await sdk.ok( sdk.me( 'id,first_name,last_name,display_name,email,personal_space_id,home_space_id,group_ids,role_ids' ) ) console.log({ me }) })()

就像我说的,我真的不了解 Angular,但这里有一些 Javascript 如果你把它放在 ngOnInit 中应该会更好地工作。 browserSDK 和 nodeSDK 实现了相同的方法,所以一切都应该按照文档工作。唯一需要注意的重要区别是SDK的初始化不同,不能传递settings.ini文件什么的。如果您不想使用 Oauth,您可以创建一个自定义配置读取器并将其传递给它。看看:

{{1}}

然后实现你的功能。 browserSDK 和 nodeSDK 实现了相同的方法,所以一切都应该按照文档进行。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。