2016-03-11 62 views
2

我有一個輸入第三方庫的TypeScript文件。爲什麼我不能在TypeScript中導入sprintf-js

import * as _ from 'lodash'; // Works great! 
import * as moment from 'moment'; // Works great! 
import {vsprintf} from 'sprintf-js'; // Compiler error 

正如我的意見所解釋的,前兩個導入工作很好,但sprintf-js導入沒有。我得到以下編譯器錯誤:

Error TS2307: Cannot find module 'sprintf-js'.

毫無疑問,我有我的sprintf-jsnode_modules文件夾內。我對節點模塊不是很瞭解。我猜測,sprintf-js libarary做的不同於lodash或片刻,而TypeScript不喜歡它。我該如何做這項工作?

回答

1

您需要爲sprintf-js添加一個打字定義。根據設置的不同 - 如果你已經安裝了TSD和你的項目設置,這將是運行的情況:

tsd query sprintf-js --action save 

否則,你可以有一個在這裏閱讀:

http://definitelytyped.org/

或只需在項目根文件夾下載類型定義,並將其包含:

https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/master/sprintf-js/sprintf-js.d.ts

+1

沒錯,就是它!我有錯誤的定義文件。我有'sprintf'而不是'sprintf-js'。 – battmanz

+1

tsd已被棄用(npm WARN已棄用[email protected]:TSD已棄用贊成類型) 有關更多信息,請參閱https://github.com/DefinitelyTyped/tsd/issues/269 因此,您可以使用以下命令添加Typings的打字定義: 'typings install sprintf-js --ambient --save' – Atorian

相關問題