我正在構建一個打字稿項目並使用非打字稿庫調用'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