【发布时间】:2017-07-02 19:39:48
【问题描述】:
我正在使用 Typescript 2.1.5 并尝试用它编写一些更新的代码部分。 我有一个 JS library,我还没有准备好在 Typescript 中更新。问题是我需要在一个简单的 Typescript 组件中使用一些 Javascript 代码。
我一直在网上获取一种方法来让我的 Javascript 函数被调用并在 .TS 文件中工作。不幸的是,信息要么过时(大部分)、不清楚或根本没有解释。我已经尝试了很多技巧,但都没有奏效。
所以我的问题是:在 TS 文件 (ES6) 中使用 javascript 代码的最简单方式和最简单方式是什么?必须遵循一个协议才能完成这项工作。
任何教程、链接或解释都将不胜感激,我相信会帮助处于相同情况的其他人。
为了更好地理解这里有一些代码 sn-ps :
我首先在 component.ts 中导入我的 JS 文件
var ZP = require('./zp.js');
在我的 js 文件中,我有两种类型的函数。分别是一个基本的和另一个来自对象的方法:
**export** function logTest(){
console.log("Responding");
}//Simple function
(*我刚刚在编辑时发现,通过将关键字“export”附加到简单函数可以在 TS 文件中调用。这不适用于方法 *)。
DObject.stringtest = function(){
return "Responding";
} //Object Method
回到我的 component.ts 文件,我调用了每个文件。现在调用带有 export 关键字 的 simple 函数,但 DObject 方法仍然未定义。 (我对 DObject 进行了虚拟调用,只是为了展示什么不起作用,即使它对某些人来说似乎很明显)。
testFunc(event){
console.log("event is okay");
console.log(ZP.logTest()); <--- Now Works
console.log(ZP.stringTest()); <--- Don't Work
console.log(ZP.DObject.stringTest()); <--- Don't Work
console.log(ZP.DObject.stringTest); <--- Don't Work
}
这里是控制台日志:
DObject.stringTest is not a function
(对于 stringTest() 的前两次调用)
Undefined
(最后一次调用 DObject.stringTest )
(我刚刚发现了一些关于声明文件的东西,我会试一试,希望如果它有效,我会编辑一个完整的分步教程。同时,任何帮助将不胜感激。)
【问题讨论】:
-
直接导入即可。所有的JS都是有效的TS
-
我听说了,但是当我从 JS 文件中查询一个函数时,我得到了一个错误:xxx 不是一个函数。另外,在构造函数中不可能像在 this 上下文中那样使用它。
-
尝试发布一些示例代码来帮助解释您的问题。 JavaScript 文件中的简单函数是什么?您如何尝试在 TypeScript 中使用它?你是如何导入这个文件的?此类基本信息将帮助其他人正确诊断您的问题。
标签: javascript typescript require