禁用错误的打字稿错误
disable wrong typescript error
我已经安装了 'interact.js' 和 jspm(为了打字稿而安装了 npm)。该应用程序运行正常,但我的代码显示错误:
import { interact } from 'interact.js/interact'
// ==> typescript error: TS2307: Cannot find module 'interact.js/interact'
我想问题与包含“.js”的 npm 模块有关,但我不确定。无论如何,有没有办法通过
解决这个问题
一个。帮助 Typescript 找到模块
B. 禁用此特定错误(因为它工作正常)
PS:这是我的 tsconfig.json 文件:
{ "exclude":
[ "node_modules"
, "jspm_packages"
, ".git"
, "typings/browser"
, "typings/browser.d.ts"
]
, "compilerOptions":
{ "outDir": "dist"
, "target": "es5"
, "sourceMap": true
, "experimentalDecorators": true
}
, "compileOnSave": false
}
TypeScript compiler/language 服务实际上并不像您预期的那样通过文件系统或您的 package.json
解析模块名称 - it instead uses the definition (.d.ts
) files that define the type information.
虽然这不是世界上最直观的东西,但他们对此的推理并非完全不合理 - 没有定义文件,就不可能知道导入的东西是什么类型,而且他们对制作有点谨慎编译器默认只将导入设置为 any
类型。
简而言之,这个问题的解决方案就是安装定义文件(如果可用),或者 write/stub 如果没有则安装您自己的文件。 They'll be making this easier in TypeScript 2.0 by the sounds of it,但即便如此,创建虚拟定义也需要很多代码:
declare module "interact.js/interact" {
export var interact: any;
}
我已经安装了 'interact.js' 和 jspm(为了打字稿而安装了 npm)。该应用程序运行正常,但我的代码显示错误:
import { interact } from 'interact.js/interact'
// ==> typescript error: TS2307: Cannot find module 'interact.js/interact'
我想问题与包含“.js”的 npm 模块有关,但我不确定。无论如何,有没有办法通过
解决这个问题一个。帮助 Typescript 找到模块 B. 禁用此特定错误(因为它工作正常)
PS:这是我的 tsconfig.json 文件:
{ "exclude":
[ "node_modules"
, "jspm_packages"
, ".git"
, "typings/browser"
, "typings/browser.d.ts"
]
, "compilerOptions":
{ "outDir": "dist"
, "target": "es5"
, "sourceMap": true
, "experimentalDecorators": true
}
, "compileOnSave": false
}
TypeScript compiler/language 服务实际上并不像您预期的那样通过文件系统或您的 package.json
解析模块名称 - it instead uses the definition (.d.ts
) files that define the type information.
虽然这不是世界上最直观的东西,但他们对此的推理并非完全不合理 - 没有定义文件,就不可能知道导入的东西是什么类型,而且他们对制作有点谨慎编译器默认只将导入设置为 any
类型。
简而言之,这个问题的解决方案就是安装定义文件(如果可用),或者 write/stub 如果没有则安装您自己的文件。 They'll be making this easier in TypeScript 2.0 by the sounds of it,但即便如此,创建虚拟定义也需要很多代码:
declare module "interact.js/interact" {
export var interact: any;
}