我最近开始集成typescript,并对公司遗留的javascript代码库做出反应。我相信你们中的许多人都明白,这是一次非常成功的经历。
在克服了许多大障碍(如建立适当的Webpack过程、理解和设置tsconfig文件以及适当地分解绑定)之后,我最终将其与当前的CI管道集成在一起。
但是,现在我有一个在我的类型脚本代码中导入javascript库的问题。我知道这是一种不好的做法,但在转向完全遵从TS之前,这是一种中间手段。
我有一个基本的组件,可以很好地构建:
import * as React from "react";
import * as ReactDOM from "react-dom";
import { Header } from "./components/header";
import * as $C from "./../../fortress.content.js";
import * as $F from "./../../fortress.js";
let url : string = $F.writeUrl("Account", "LoginAjax");
ReactDOM.render(
<div>
<div> {url} </div>
</div>,
document.getElementById("body")
);
$F.writeUrl
允许我们基本上基于项目根目录中的webconfig文件创建一个字符串,因此基本上是一个函数,它接受几个不同的参数并返回一个基于它的字符串:
但是,当我在一个裸机HTML文件中运行发出来的javascript时:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<div id="body"></div>
<div id="header"></div>
<body>
<script src="js/jquery-2.1.4.min.js"></script>
<script src="js/react-0.14.3.js"></script>
<script src="js/react-dom-0.14.3.js"></script>
<script src="js/filemanager/filemanager.bundle.js"></script>
<script src="js/anothermanager/anothermanager.bundle.js"></script>
<script>
console.log("$F: ", $F);
console.log("$C: ", $C);
</script>
</body>
</html>
我得到这些错误:
Uncaught TypeError: Cannot read property 'bind' of undefined
at new t (filemanager.bundle.js:1)
at ReactCompositeComponentWrapper.mountComponent (react.js:5504)
at ReactCompositeComponentWrapper.wrapper [as mountComponent] (react.js:12346)
at Object.mountComponent (react.js:12971)
at ReactDOMComponent.mountChildren (react.js:11685)
at ReactDOMComponent._createContentMarkup (react.js:6817)
anothermanager.bundle.js:1 Uncaught ReferenceError: $C is not defined
at anothermanager.bundle.js:1
at Object.<anonymous> (anothermanager.bundle.js:1)
at n (anothermanager.bundle.js:1)
at Object.<anonymous> (anothermanager.bundle.js:1)
at n (anothermanager.bundle.js:1)
at anothermanager.bundle.js:1
at anothermanager.bundle.js:1
at ReactDOMComponent.mountComponent (react.js:6705)
at Object.mountComponent (react.js:12971)
at ReactCompositeComponentWrapper.mountComponent (react.js:5581)
at ReactCompositeComponentWrapper.wrapper [as mountComponent] (react.js:12346)
index.html:17 Uncaught ReferenceError: $F is not defined
at index.html:17
所以我尝试改变这个来例示
$C
和
$F
在我的TS中:
let test = $F;
let test2 = $C;
这消除了上面的错误,实际上向我展示了
F
和
美元
控制台日志中的对象。但现在的问题是$f.writeurl(“account”,“loginajax”)正在爆炸,因为Chrome不会将其识别为“函数”。
我的进口货有什么问题吗?