【发布时间】:2018-12-26 22:43:01
【问题描述】:
我有一个具有这种结构的项目:
project/
├── package.config
├── node_modules/
│ ├── interactjs/
│ ├── ├── index.d.ts
├── src/
│ ├── browser/
│ | ├── tsconfig.json
│ | ├── index.ts
我有以下./package.json:
{
...
"dependencies": {
"interactjs": "1.3.4"
},
"devDependencies": {
"typescript": "3.2.2"
}
}
我的./src/browser/tsconfig.json 是:
{
"compilerOptions": {
"target": "es5",
"module": "none",
"declaration": true,
"strict": true,
"strictNullChecks": false,
"outDir": "./out"
},
"typeRoots": [
"../../node_modules",
"../../node_modules/@types",
"../definitions"
],
"include": [
"./**/*"
]
}
如您所见,我还包括文件夹 definitions,因为我想在项目的所有 Typescript 文件中包含一些手动定义。
问题
以下编译失败:
const p : interact.Position = { x: 1, y: 2 };
有错误:
index.ts:9:11 - error TS2503: Cannot find namespace 'interact'.
9 const s : interact.Position = { x: 1, y: 2 };
~~~~~~~~
即使在node_modules/interactjs 文件中index.d.ts 包含所有定义,也找不到interact。
有什么问题?
【问题讨论】:
-
interactjs的类型定义文件在哪里?是
project/node_modules/inderactjs/index.d.ts吗? -
@JesseHallett 是的!就是这样
-
我已经编辑了这个问题,以便文件树反映这个事实:)
-
你把 index.d.ts 放在那里了吗?安装软件包时看不到该文件。如果你把它放在那里,那么修复就在我下面的答案中:将定义文件移动到
project/node_modules/interactjs/dist/interact.d.ts。
标签: javascript typescript definition