在哪里/如何为私有的scoped npm模块添加d.ts?

时间:2016-08-30 19:47:31

标签: typescript typescript1.8 typescript-typings

我正在尝试将Javascript项目移植到Typescript。我有一个名为@myscope/utils

的依赖项

将来自此文件的文件导入ts文件,如下所示:

import date = require('@myscope/utils/date');

当我尝试编译时,我收到以下错误:

src/subfolder/something.ts(12,23): error TS2307: Cannot find module '@myscope/utils/date'.

如何为这样的私人模块添加自己的打字?

1 个答案:

答案 0 :(得分:2)

我自己设法解决了这个问题。 我提到了关于writing declaration files

的信息

要解析模块的关键是声明一个模块,其名称为包的完整路径。我为该模块创建了一个index.d.ts文件,我将其添加到files的{​​{1}}部分。

该文件包含以下声明:

tsconfig.json

虽然没有必要,但我按照打字的方式构建了我的导入。在我移植了应用程序的其余部分之后,我可以稍后进行简化。

我创建了以下文件:

declare namespace date {
  function now(): number;
}

declare module "@myscope/utils/date" {
   export = date; 
}

请注意,utils路径中没有日期部分。

mytypings/index.d.ts mytypings/modules/@myscope/utils/index.d.ts 包含mytypings/index.d.ts的参考路径,然后添加到mytypings/modules/@myscope/utils/index.d.ts的部分。

我的计划是以相同的方式添加其他库。