2017-02-14 18 views
0

我正在與Typescript .1.5並試圖用它寫一些新的代碼段。 我有一個JS我沒有準備好在Typescript中更新。問題是我需要在簡單的Typescript組件中使用一些Javascript代碼要求JS對象和函數Typescript Angular2項目

我一直在抓取Web的一種方式來讓我的Javascript函數被調用並在.TS文件中工作。不幸的信息是過時(主要),不清楚或根本沒有解釋。我已經嘗試了很多技巧,但都沒有成功。

所以我的問題是:什麼是最簡單的方式最簡單的方法消耗的TS文件(ES6)javascript代碼?必須有一個協議才能完成。

任何教程,鏈接或解釋將非常感激,我肯定會幫助其他人在相同的情況。

爲了更好地理解這裏有一些代碼段:

我開始做我的JS文件的導入在component.ts

var ZP = require('./zp.js'); 

在我的js文件,我有兩種類型的功能。分別是基本的一個又一個的這是從一個對象的方法:

**export** function logTest(){ 
    console.log("Responding"); 
}//Simple function 

*我剛剛發現在編輯時,通過附加關鍵字「出口」到簡單的功能使得它avaible在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的最後一次通話。字符串測試)

(我只是發現了一些關於聲明文件,我會給它一個鏡頭,希望如果它的工作,我會編輯一個完整的解釋一步一步教程,同時任何幫助將不勝感激。

+0

剛導入它。所有的JS都是有效的TS – tom10271

+0

我聽說,但是當我從JS文件查詢函數時出現錯誤:xxx不是函數。另外,在構造函數中不能超級使用它,因爲在這種情況下。 –

+1

嘗試發佈一些示例代碼以幫助解釋您的問題。什麼是JavaScript文件中的簡單功能?你如何在TypeScript中使用它?你如何導入這個文件?像這樣的基本信息將有助於他人正確診斷您的問題。 – blorkfish

回答

-1

在你的情況下,你現有的javascript文件在typescript中沒有被檢測到,因爲typings不可用。

您可以創建一個類型定義(index.d.ts)文件並不斷添加類型,以便它可用於您的tsc編譯器。

下面是幾個你需要了解的事情時,來到打字稿的世界。你們中的一些人可能知道,有些可能不知道。

  • transpiled到Java腳本到tsconfig.json你想具體版本

  • 打字稿瞭解打字稿(對於需要JavaScript的類型定義)每打字稿文件或類型定義。

  • 有2種形式提供許多打字:
    1. 分型安裝
    2. @types命名包
  • 進口和出口,使可用您的成員和屬性給他人
+0

好吧,但.d.ts文件中的對象聲明的結構如何?編譯器如何知道我的DObject存在?我如何聲明相當靜態函數(方法)像DObject.Counter = function(){...}?那麼如何給他們打電話?需求變量名稱是否足夠?我必須導入.d.ts文件嗎? –