Dav*_*ier 2 typescript typescript1.8 typescript-typings
我正在尝试将 Javascript 项目移植到 Typescript。我有一个名为如下的依赖项:@myscope/utils
来自此的文件被导入到 ts 文件中,如下所示:
import date = require('@myscope/utils/date');
Run Code Online (Sandbox Code Playgroud)
当我尝试编译它时,出现以下错误:
src/subfolder/something.ts(12,23): error TS2307: Cannot find module '@myscope/utils/date'.
Run Code Online (Sandbox Code Playgroud)
如何为这样的私有模块添加自己的类型?
我自己设法解决了这个问题。我参考了有关编写声明文件的信息
获取要解析的模块的关键是声明一个模块,其名称为包的完整路径。我index.d.ts为该模块创建了一个文件,并将其添加到我files的tsconfig.json.
该文件包含以下声明:
declare namespace date {
function now(): number;
}
declare module "@myscope/utils/date" {
export = date;
}
Run Code Online (Sandbox Code Playgroud)
虽然没有必要,但我像打字一样构建了导入。在移植应用程序的其余部分后,我可能会稍后进行简化。
我创建了以下文件:
mytypings/index.d.ts
mytypings/modules/@myscope/utils/index.d.ts
Run Code Online (Sandbox Code Playgroud)
请注意,utils 路径中没有日期部分。
mytypings/index.d.ts包含参考路径mytypings/modules/@myscope/utils/index.d.ts,然后添加到 的部分tsconfig.json。
我的计划是以同样的方式添加其他库。