如何在 React Native 项目中将 JS 库导入打字稿

Posted

技术标签:

【中文标题】如何在 React Native 项目中将 JS 库导入打字稿【英文标题】:How to import JS library to typescript in React Native project 【发布时间】:2018-10-13 11:54:07 【问题描述】:

如何将 js 库(在我的例子中是 xhook 库)导入到我用 typescript 编写的 react native 项目中?或者如何为外部 js 库创建 typescript 头文件?

【问题讨论】:

看看这是否有帮助? github.com/philikon/ReactNativify 【参考方案1】:

你可以简单地使用:

const signalrLib = require("react-native-signalr").default

【讨论】:

【参考方案2】:

TypeScript 像 Babel 或任何其他扩展的 javascript 语言一样编译为纯 Javascript。

因此,当您将示例 xhook 添加到您的项目时,项目所有者已经将他/她的 TypeScript 代码编译为纯 JS,您可以像导入任何其他库一样导入它。

例如。 import xhook from 'xhook' 等库作者如何指定。

如果你访问 xhook 的 git 页面 https://github.com/jpillora/xhook 你可以自己看到它,你可以在文件夹 distpackage.json -file 中看到编译后的代码,属性 main 指向该文件。

TypeScript 本身并不是在浏览器中运行的语言,但它总是被编译为纯 JavaScript。希望这有助于了解其工作原理。

编辑。看起来xhook实际上是用 CoffeeScript 编写的,但同样的规则也适用于它。

【讨论】:

【参考方案3】:

按照建议,您可以在 typescript 中使用任何 ES6/ES2015 表示法。 使用新的打字稿,导入将是

import xhook from 'xhook';

旧版本:

import * as xhook from 'xhook'

某些模块没有类型支持。你可以寻找类型支持

yarn add @types/xhook

如果你没有找到可以使用的类型支持,节点需要语法

const xhook = require('xhook');

为此,您可能需要声明,require 定义如下:

declare const require: any;

【讨论】:

以上是关于如何在 React Native 项目中将 JS 库导入打字稿的主要内容,如果未能解决你的问题,请参考以下文章

如何在React native中将屏幕分为三个具有不同文本内容的部分

如何在 React Native 中将 TextInput 与数组中未知长度的项目集中在一起?数组中可能有更多或更少的项目来自数据库

如何在 react-native 中将函数的结果从一个组件传递到另一个组件?

在 React Native Expo 中将项目渲染到底页时出现类型错误

在 iOS 中将 react-native-navigation 与 react-native-callkit 集成

如何在 react-native 中将 JPG 图像转换为 PNG