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

时间:2017-02-14 13:29:45

标签: javascript typescript require

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

我一直在抓取网页,以便让我的Javascript函数被调用并在.TS文件中工作。不幸的信息是 过时 (主要是),不清楚或根本没有解释。我已经尝试了很多技巧,但都没有效果。

所以我的问题是:在TS文件(ES6)中使用javascript代码的最简单方式和最简单方式是什么?必须遵循一个协议来完成这项工作。

我们非常感谢任何教程,链接或解释,我相信在相同的情况下也会帮助其他人。

为了更好地理解,这里有一些代码片段:

我首先在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 文件,我会调用每个文件。现在调用带有导出关键字简单函数,但 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)

(我刚发现一些关于宣言文件的内容,我会给它一个镜头,希望如果它有用,我将编辑一个完整的解释一步一步的教程。同时,任何帮助将不胜感激。)< / em>

1 个答案:

答案 0 :(得分:-1)

在您的情况下,由于打字不可用,因此在打字稿中未检测到您现有的javascript文件。

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

在进入打字稿世界时,您需要了解以下几点。有些人可能知道,有些人可能不知道。

  • 将每个打字稿文件转换为java脚本到tsconfig.json中所需的特定版本

  • 打字稿了解打字稿(需要javascript类型定义)或类型定义。

  • 有两种形式可供选择:
    1. typings install
    2. @types命名空间包
  • 导入和导出使您的成员和属性可供他人使用