我有一个 TypeScript 文件,我正在将第三方库导入其中。
import * as _ from 'lodash'; // Works great!
import * as moment from 'moment'; // Works great!
import {vsprintf} from 'sprintf-js'; // Compiler error
正如我的评论所解释的那样,前两个导入效果很好,但 sprintf-js 导入效果不佳。我收到以下编译器错误:
错误 TS2307:找不到模块"sprintf-js"。
毫无疑问,我的node_modules
文件夹内有sprintf-js
。我对节点模块不是很了解。我猜sprintf-js libarary做的事情与lodash或moment不同,而TypeScript不喜欢它。我怎样才能做到这一点?
为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