我正在构建一个打字稿项目并使用非打字稿库调用'draggabilly';Typescript在本地声明第三方模块
所以我试图自己声明。
这里是文件结构:
├── @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' 隐含地具有'任何'类型。
所以我尝试创建本地声明文件:@类型/ 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文件内部定义,但打字稿根本找不到声明文件。
结帐这个draggabilly分型https://github.com/giespaepen/draggabilly/blob/f40f08319eb2f8c8305a6207cf9afb731232dbfe/typings/draggabilly.d.ts –
感谢Aivan,我做到了。但打字稿似乎没有识别我的声明文件。这就是为什么我把我的文件结构和配置上面。 – Zhe