我正在尝试将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'.
如何为这样的私人模块添加自己的打字?
答案 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
的部分。
我的计划是以相同的方式添加其他库。