2015-07-19 45 views
0

爲什麼這行作爲打字稿程序的第一行會給出錯誤?JS行不起作用在TS

var curry = require('lodash').curry; 

的錯誤是:「找不到名稱‘需要’的......

你能解構我的代碼行具體解釋是什麼錯誤消息要告訴我嗎?不是如何解決這個問題,但是我讀到什麼會導致錯誤信息的誤解?

另外,由於這條線在javascript中正常工作,這不違反「所有js也是合法ts」規則嗎?

最後,什麼是「正確的」打字稿來創建一個綁定到加載庫的咖喱方法的變量「咖喱」?

謝謝!

回答

1

你可以解構我的代碼行來具體解釋什麼樣的錯誤消息試圖告訴我嗎?

TypeScript看到你使用了一個它不知道的變量。 TypeScript不會假定存在任何任意變量(否則它將永遠無法警告您使用名爲reqiure的變量)。

另外,由於這條線在javascript中正常工作,這是不是違反了「所有的js也是合法的ts」規則?

這是合法的TypeScript。編譯器仍然在發射JS。這只是警告你一些看起來不正確的事情。

最後,什麼是「正確的」打字稿來創建一個綁定到加載庫的咖喱方法的變量'咖喱'?

我將包括lodash.d.ts和寫:

import lodash = require('lodash'); 
var curry = lodash.curry; 
+0

謝謝!那麼需求線如何在純JavaScript中工作?我想它與提供給js引擎的節點環境有關? – pitosalas

+1

node.js定義了'require'。如果你想直接使用它,你應該包含'node.d.ts'。 –