如何在 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 你可以自己看到它,你可以在文件夹 dist
和 package.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 中将项目渲染到底页时出现类型错误