Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Typescript Angular2项目中需要JS对象和函数_Javascript_Typescript_Require - Fatal编程技术网

Javascript 在Typescript Angular2项目中需要JS对象和函数

Javascript 在Typescript Angular2项目中需要JS对象和函数,javascript,typescript,require,Javascript,Typescript,Require,我正在使用Typescript2.1.5,并试图用它编写一些较新的代码段。 我有一个JS库,我还没有准备好用Typescript更新它。问题是,我需要在一个简单的Typescript组件中使用一些Javascript代码 我一直在访问web,寻找一种方法来调用Javascript函数并在.TS文件中工作。不幸的是,信息要么是过时的,要么是不清楚的,要么根本没有解释。我已经尝试了很多技巧,但没有一个奏效 所以我的问题是:使用TS文件(ES6)中的javascript代码的最简单的方法和最简单的方法

我正在使用Typescript2.1.5,并试图用它编写一些较新的代码段。 我有一个JS库,我还没有准备好用Typescript更新它。问题是,我需要在一个简单的Typescript组件中使用一些Javascript代码

我一直在访问web,寻找一种方法来调用Javascript函数并在.TS文件中工作。不幸的是,信息要么是过时的,要么是不清楚的,要么根本没有解释。我已经尝试了很多技巧,但没有一个奏效

所以我的问题是:使用TS文件(ES6)中的javascript代码的最简单的方法和最简单的方法是什么?要做到这一点,必须遵循一个协议

任何教程、链接或解释都将不胜感激,我相信在同样的情况下也会对其他人有所帮助

为了更好地理解,以下是一些代码片段:

我首先在component.ts中导入我的JS文件

在我的js文件中,我有两种类型的函数。分别是一个基本方法和另一个方法,它们是来自对象的方法:

*我刚刚在编辑时发现,通过在简单函数中添加关键字“export”,可以调用TS文件。Wich不适用于方法*

回到我的组件.ts文件,我调用每个组件。带有导出关键字的简单函数现在被调用,但是DObject方法仍然没有定义。 (我对DObject进行了虚拟调用,只是为了显示哪些东西不起作用,即使对某些人来说可能很明显)

(对于stringTest()的前两个调用)

(用于最后一次调用DObject.stringTest)


(我刚刚找到了一些关于声明文件的内容,我将尝试一下,希望如果它起作用,我将编辑一个完整的解释性的分步教程。同时,非常感谢您的帮助。)

在您的情况下,您现有的javascript文件不会在typescript中检测到,因为无法使用打字

您可以创建一个类型定义(index.d.ts)文件,并不断添加您的类型,以便您的tsc编译器可以使用它

当你来到打字脚本世界时,以下是你需要了解的几件事。你们中有些人可能知道,有些人可能不知道

  • 每个类型脚本文件都被转换为java脚本,转换为您想要在tsconfig.json中使用的特定版本

  • typescript理解typescript(需要javascript类型定义)或类型定义

  • 有两种形式的许多输入:
  • 打字装置
  • @类型命名空间包
  • 导入和导出使您的成员和属性可供其他人使用

只需导入即可。所有的JS都是有效的TSI听说了,但是当我从JS文件中查询一个函数时,我得到了一个错误:xxx不是一个函数。另外,不可能在构造函数中使用super来在上下文中使用它。请尝试发布一些示例代码来帮助解释您的问题。JavaScript文件中的简单函数是什么?你是如何在TypeScript中使用它的?如何导入此文件?这样的基本信息将帮助其他人正确诊断您的问题。好的,但是.d.ts文件中对象声明的结构如何?编译器如何知道我的DObject存在?如何声明像DObject.Counter=function(){…}这样相当静态的函数(方法)?那怎么称呼他们呢?所需变量名是否足够?我必须导入.d.ts文件吗?
var ZP = require('./zp.js');
**export** function logTest(){
    console.log("Responding");
}//Simple function
DObject.stringtest = function(){
    return "Responding";
} //Object Method
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
Undefined