我已经在我的.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>
然后在test.js:
var myTree = Tree.tree({})
但Typescript错误地指出:“找不到名称‘树’”
我也尝试编译与-模块amd
和放置导入树=要求(模型/树);
在test.js文件的顶部,但它再次出错:找不到外部模块'模型/树'。
我不想为我想使用的每个外部javascript文件编写. d.ts文件,这真的是Typescript想要我做的吗?
您可以自己定义“require”并使用TypeScript的未记录和依赖特性:
/// <amd-dependency path="model/tree" />
declare var require:(moduleId:string) => any;
var Tree = require("model/tree");
“amd-dependency”指令将告诉编译器在生成的代码中包含您的模块来“定义”参数:参见这里的示例。
您还可以查看一篇非常好的文章,该文章解释了如何将TypeScript与
但请注意,如果没有为现有代码编写正确的TypeScript定义,您将无法获得任何类型信息,因此您将无法在工具中进行类型安全检查、高级代码完成等。因此,您的“树”实际上是“any”类型,实际上是其他TS代码中的动态JS片段。
我不想为我想使用的每个外部javascript文件编写. d.ts文件,这真的是Typescript想要我做的吗?
不。最简单/最快的解决方案就是告诉它有一些变量Tree
。这很简单:
declare var Tree:any; // Magic
var myTree = Tree.tree({})
TypeSafety是TypeScript中的滑动刻度。在这种情况下,您只是告诉编译器,有一个名为Tree
的东西,您将管理它,除了它存在的事实之外,您不关心太多类型安全性。
恕我直言:声明 var Tree:any;
这一行的语法比其他 JS veficiation 工具要简单得多,它会让你编写来声明你对代码中不存在的变量的使用。
interface ITree {
.. further methods and properties...
}
interface ITreeFactory {
tree(input: { [key: string]: any }): Itree
};
declare var Tree: ITreeFactory; // magic...
我正在努力寻找 有什么不同?
问题内容: 我希望能够实例化一个Typescript类,在运行时可以获取该类和构造函数的详细信息。我想编写的函数将包含类名和构造函数参数。 问题答案: 您可以尝试: 编辑 此版本可在TypeScript操场上使用,例如:
我正在学习Typescript,并尝试实现一个简单的React/Redux应用程序。当我使用同步操作时,它工作得很好,但问题在于异步操作。我正在学习官方的redux教程。 首先,我宣布会议状态 然后我为这个动作声明接口 我使用联合类型导出它们
问题内容: 我正在尝试打字稿。在hello世界阶段它工作正常。我现在正在尝试使用npm模块: = 这不起作用: -> -> 看着打字稿文档和谷歌没有帮助。其他S /O问题未得到回答 元素: 打字稿1.8最新 是的,lodash已安装并存在于我的文件系统中(已选中) 我也做了 变种或不起作用 我试图调整tsconfig.json选择在其他的答案建议 ,并在一些答案建议,仍然无法正常工作 我们如何在打
问题内容: 我在这里找到了解决方案:Webpack和Typescript图像导入 但我为此得到错误: 我想我需要以某种方式强制导入,但无法弄清楚如何。我在React中做到这一点。我看到该属性定义为,这就是为什么会弹出错误。 这是代码: HTML: 并基于上述解决方案进行定义: tsconfig: 问题答案: 摆脱该错误的一种方法是通过按如下方式修改d.ts文件: 去掉 或者您可以执行以下操作: 更
问题内容: 在我的react和typescript应用程序中,我使用:。 我如何正确定义类的类型,这样我就不必用来绕过类型系统了? 如果我把我得到: 问题答案: 通常,事件处理程序应使用,例如: 您可以在这里阅读原因(还原“使SyntheticEvent.target通用,而不是SyntheticEvent.currentTarget。”)。 UPD:如@ roger-gusmao所述,它更适合于