javascript - 如何在 React 应用程序中手动本地测试打字稿功能?
问题描述
对不起一个菜鸟问题,我正在使用 react 和 typescript(通过 create-react-app),如果我有一些完全非 UI 的 javascript 代码(我正在开发的一个模块与一些 REST api 一起工作),类似于这个:
src/lib/rest.tsx
export const getUser = async function (
username: string,
) {
let response = await fetch(`http://localhost:3000/api/auth/`, {
username
});
return response;
};
我想知道如何在 REPL 或浏览器的开发工具中本地测试此功能,然后再将其投入实际使用。我想我现在有两个困难:
- webpack 现在似乎甚至没有将这个模块打包到代码中,如果我打开 Chrom 的开发工具,我可以看到其他 tsx 文件,但看不到这个,只是因为我没有在任何我想的地方导入这个模块。
- 即使它被打包,我也不知道如何
import
在 REPL 或开发工具控制台中使用这个模块,因为首先我不知道这里的正确语法是什么,会是import src/lib/rest.tsx
吗?似乎我无法在 REPL 中导入任何模块,因为导入只能在模块内部进行。
这里的工作流程只是我编写了一些简单的打字稿功能,我想在类似环境的 REPL 中运行它们,这样我可以确保它们在任何地方使用它或开始针对它们编写单元/集成测试之前都在工作。
谢谢!
解决方案
1 是正确的,你的新模块没有被导入,因此没有被 webpack 捆绑。
我认为您不能import
在控制台 atm 中使用语法。但是您可以尝试两种方法。
只需将您的代码导入捆绑文件之一,如果您使用的是开发服务器,更改将自动反映到浏览器:
import { getUser } from '../../lib/rest';
getUser().then(console.log);
或将其附加到窗口,以便您可以在控制台中使用它:
import { getUser } from '../../lib/rest';
if (typeof window !== 'undefined') {
window.getUser = getUser;
}
推荐阅读
- java - Spring Integration Aggregator 问题或错误配置
- reactjs - 如何将 firebase 数据异步加载到 react-redux 中?
- html - 想不通为什么
和
- python-3.6 - hydra 在创建输出目录时如何管理时区?
- javascript - Angular 在查询参数之前添加一个额外的斜杠
- python - python / pandas - 查找两个数据框之间的公共列,并创建另一个具有相同列的列来显示它们的差异
- apache-kafka - Http 源配置不适用于 Flume
- pycharm - 从 PyCharm 搜索中排除带有模式的文件名
- r - ifelse() 尝试更改值时返回logical(0)
- javascript - 从 CSS 中删除 !important