为什么我不能在 TypeScript 中导入 sprintf-js



我有一个 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

最新更新