【发布时间】:2023-04-01 04:16:02
【问题描述】:
我正在构建一个打字稿项目并使用非打字稿库调用'draggabilly';
所以我尝试自己声明。
这是文件结构:
├── @types
│ └── draggabilly
│ └──index.d.ts
├── node_modules
├── package.json
├── README.md
├── src
│ ├── index.ts
│ └── application.ts
└── tsconfig.json
src/application.ts
import * as Draggabilly from 'draggabilly';
new Draggabilly('#dragItem', {
// options...
});
......
这表明
找不到模块“draggabilly”的声明文件。 '/node_modules/draggabilly/draggabilly.js' 隐式具有“任何”类型。
所以我尝试创建本地声明文件:@types/draggabilly/index.d.ts:
export as namespace draggabilly;
export = Draggabilly;
declare class Draggabilly {
constructor(selector: string, options: any);
}
然后在 tsconfig.json 中包含类型路径:
{
"compilerOptions": {
......
"typeRoots": [
"./node_modules/@types",
"./@types"
]
}
}
但错误仍然存在。所以我想知道这里出了什么问题以及在本地构建第三方模块声明文件的正确方法是什么
我在 github 上为这个问题创建了一个演示库: https://github.com/ZheFeng/test-ts-types
问题不仅在于我们如何在 .d.ts 文件中定义,还在于 typescript 根本找不到声明文件。
【问题讨论】:
-
签出这个可拖动的打字github.com/giespaepen/draggabilly/blob/…
-
谢谢艾文,我做到了。但是打字稿似乎无法识别我的声明文件。这就是为什么我把我的文件结构和配置放在上面。
标签: typescript typescript-typings typescript2.0