我在我的.html文件中定义了这些:
<script type="text/javascript" src="bower_components/tree.js/tree.min.js"></script>
<script type="text/javascript" src="bower_components/q/q.js"></script>
<script type="text/javascript" src="test.js"></script>
Run Code Online (Sandbox Code Playgroud)
然后在test.js中:
var myTree = Tree.tree({})
Run Code Online (Sandbox Code Playgroud)
但是打字稿错误地说:"找不到名字'树'"
我也尝试编译--module amd
并放置import Tree = require("model/tree");
在test.js文件的顶部,但它再次出错:Cannot find external module 'model/tree'.
但显然它应该是一个有效的导入,请参见此处定义它:https://github.com/marmelab/tree的.js /斑点/主/ SRC/main.js
我不是想写.d.ts文件为每一个外部JavaScript文件,我想使用,是严重打字稿什么要我做什么?
因此,我有一个第三方SDK,写为基于Oldschool IIFE的模块。换句话说,它看起来像这样:
var ThirdPartySDK = (function() {
var export = {};
// Add some methods to export
return export;
})();
Run Code Online (Sandbox Code Playgroud)
然后,您应该通过在全局范围内引用它来使用它,如下所示:
<html>
<body>
<script src="lib/ThirdPartySDK.js">
<script>
ThirdPartySDK.foo();
<\script>
<\body>
<\html>
Run Code Online (Sandbox Code Playgroud)
当然,我仍然可以以这种方式使用它,但这真的是Angular和TypeScript的最佳实践吗?有什么方法可以使用angular / TypeScript / webpack进行设置,以便可以使用正确的import语句?像这样:
import { ThirdPartySDK } from '../lib/ThirdPartySDK.js';
ThirdPartySDK.foo();
Run Code Online (Sandbox Code Playgroud)