禁用错误的打字稿错误

时间:2016-04-20 08:25:47

标签: javascript node.js typescript interact.js

我已经用jspm安装了'interact.js'(并且npm for typescript很高兴)。该应用运行正常,但我的代码显示错误:

 url: "${pageContext.request.contextPath }/uploadManuals?url=value", 

我认为这个问题与包含'.js'的npm模块有关,但我不确定。无论如何,有没有办法通过

解决这个问题

一个。帮助Typescript找到模块 B.禁用此特定错误(因为它工作正常)

PS:这是我的tsconfig.json文件:

import { interact } from 'interact.js/interact'
// ==> typescript error: TS2307: Cannot find module 'interact.js/interact'

1 个答案:

答案 0 :(得分:2)

TypeScript编译器/语言服务实际上并不像您期望的那样通过文件系统或package.json解析模块名称 - it instead uses the definition (.d.ts) files that define the type information

虽然它不是世界上最直观的东西,但它们的推理并非完全不合理 - 如果没有定义文件,就不可能知道导入的内容是什么类型,并且它们在制作编译器方面有些谨慎默认只是将导入设置为any类型。

简而言之,这个问题的解决方案只是安装定义文件(如果可用),或者如果没有则自己编写/存根。 They'll be making this easier in TypeScript 2.0 by the sounds of it,但就目前而言,创建虚拟定义需要非常代码:

declare module "interact.js/interact" {
    export var interact: any;
}