如何在typescript中定义require函数

如何在typescript中定义require函数,typescript,Typescript,这是我的ts代码: import AddToCartBtn from "./AddToCartBtn"; import * as React from "react"; import * as ReactDOM from "react-dom"; declare var document:Document; var _handler : __React.MouseEventHandler; ReactDOM.render(<AddToCartBtn clickHandler={_han

这是我的ts代码:

import AddToCartBtn from "./AddToCartBtn";
import * as React from "react";
import * as ReactDOM from "react-dom";

declare var document:Document;
var _handler : __React.MouseEventHandler;

ReactDOM.render(<AddToCartBtn clickHandler={_handler}></AddToCartBtn>, document.getElementById("bd"));

它是一个define函数,不起作用。如何获得require函数?

您在编译时将--module(或-m)设置为amd。您可能应该使用commonjs。

需要define函数。但是,您需要在全局范围中定义它才能工作。根据您的设置,有多种方法实现这一点。我一直使用下面列出的方法:

通常,这可以通过在html中通过脚本标记导入require来完成(假设您使用的是react,我假设您的目标是浏览器)。这假设您的ts文件编译为main.js。此示例直接来自


另一个选项是在以下不同的脚本标记中调用require:

<script src="require.js"></script>
<script>
    require(["main"]);
</script>

需要([“主”]);

只需将
tsconfig.json
设置切换到以下位置:

{ "compilerOptions": { "target": "es5", "noImplicitAny": false, "module": "commonjs", "removeComments": false, "sourceMap": true, "jsx": "react" } }

然后将模块系统设置为
commonjs
,这是typescript的默认模块系统

您可以发布您的tsconfig或您使用的编译器选项吗?{“compilerOptions”:{“target”:“es5”,“noImplicitAny”:false,“module”:“amd”,“removeComments”:false,“sourceMap”:true,“jsx”:“react”}
<script src="require.js"></script>
<script>
    require(["main"]);
</script>
{ "compilerOptions": { "target": "es5", "noImplicitAny": false, "module": "commonjs", "removeComments": false, "sourceMap": true, "jsx": "react" } }