如何在带有 Typescript 项目的 React Native 中使用 AWS Amplify?
Posted
技术标签:
【中文标题】如何在带有 Typescript 项目的 React Native 中使用 AWS Amplify?【英文标题】:How to use AWS Amplify in React Native with Typescript Project? 【发布时间】:2020-10-12 04:26:57 【问题描述】:我正在尝试在使用 typescript 的 react native 项目中添加 Amplify Authentication。 放大文档 'aws-amplify-react-native' 中给出了一个包,它用作验证我们应用程序的中间件。 但是这个包只在基于 javascript 的项目中被支持。 对于 Typescript,它会显示类似的错误
Could not find a declaration file for module 'aws-amplify-react-native'.
Try `npm install @types/aws-amplify-react-native` if it exists or add a new declaration (.d.ts) file containing `declare module 'aws-amplify-react-native';`
没有像'@types/aws-amplify-react-native'这样的包可用
那么任何人都可以帮助我解决这个问题?
【问题讨论】:
安装 aws-amplify 和 aws-amplify-react-native。 【参考方案1】:我在我的打字稿项目中安装了这个,我没有问题:
npm install aws-amplify aws-amplify-react-native @react-native-community/netinfo @react-native-async-storage/async-storage
https://docs.amplify.aws/start/getting-started/setup/q/integration/react-native/#initialize-a-new-backend
【讨论】:
【参考方案2】:不幸的是,在此答案时没有定义类型。但是,您可以像这样调用@ts-ignore
// @ts-ignore
import Amplify, Auth from 'aws-amplify';
// @ts-ignore
import awsconfig from './aws-exports';
// @ts-ignore
import withAuthenticator from 'aws-amplify-react-native'
Amplify.configure(awsconfig);
【讨论】:
先生,我遇到了类似的问题,应该在哪里添加这个添加【参考方案3】:目前没有可用于 aws-amplify-react-native 的官方 TypeScript (TS) 类型。要抑制 TypeScript 警告,您需要定义自己的 TS 声明文件 (*.d.ts)。
要获得大致的类型,您可以将this file 复制到您的项目中。这些是 GitHub 用户 dantasfiles 编写的类型。请记住,它们并不精确,可以更精确地指定。
【讨论】:
先生,我在这里遇到同样的问题,你能帮我吗?我已经导入了火,但仍然不知道如何配置它 @GeorgeSMulbahII 在您的项目中拥有 TS 声明文件 (.d.ts) 后,您只需确保它包含在您的 tsconfig.json 中,使用 include 而不是 excluded。然后 TS 编译器可以将这些类型耦合到基于declare module 'aws-amplify-react-native'
的放大包。
有关更多信息,请参阅例如这个问题:***.com/questions/21247278/about-d-ts-in-typescript.以上是关于如何在带有 Typescript 项目的 React Native 中使用 AWS Amplify?的主要内容,如果未能解决你的问题,请参考以下文章
如何在带有 typescript 项目的 react js 中使用 .env 文件?
如何在带有 Typescript 的视图中使用 Vue 单文件组件?
如何正确使用带有 typescript 的 createAsyncThunk 函数?