gpt4 book ai didi

requirejs - 如何在没有 .d.ts 的情况下使用来自 typescript 的外部非 typescript 库?

转载 作者:搜寻专家 更新时间:2023-10-30 20:28:43 24 4
gpt4 key购买 nike

我已经在我的 .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 出错说:“找不到名称‘Tree’”

我还尝试使用 --module amd 进行编译,并将 import Tree = require("model/tree"); 放在 test.js 文件的顶部,但它再次出错:找不到外部模块“model/tree”。 但是很明显它应该是一个有效的导入,请在此处查看它的定义位置:https://github.com/marmelab/tree.js/blob/master/src/main.js

不想为我想使用的每个外部 javascript 文件编写 .d.ts 文件,Typescript 真的希望我这样做吗?

最佳答案

I do not want to write .d.ts files for every single external javascript file I want to use, is that seriously what Typescript wants me to do?

没有。最简单/最快的解决方案就是简单地告诉它那里有一些变量 Tree。这很简单:

declare var Tree:any; // Magic
var myTree = Tree.tree({})

TypeSafety 是 TypeScript 中的滑动标尺。在这种情况下,您只是告诉编译器有一个名为 Tree 的东西,您将对其进行管理,并且除了 它在那里 的事实之外不关心太多类型安全。

更多

恕我直言:declare var Tree:any; 这行语法比其他 JS 验证工具要简单得多,您可以编写它来声明您对代码中不存在的变量的使用。

更新

interface ITree {
.. further methods and properties...
}

interface ITreeFactory {
tree(input: { [key: string]: any }): Itree
};

declare var Tree: ITreeFactory; // magic...

关于requirejs - 如何在没有 .d.ts 的情况下使用来自 typescript 的外部非 typescript 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27417107/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com