繁体   English   中英

禁用错误的打字稿错误

[英]disable wrong typescript error

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

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

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

A.帮助打字稿找到模块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编译器/语言服务实际上并不像您期望的那样通过文件系统或package.json解析模块名称 - 而是使用定义类型信息的定义( .d.ts )文件

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

简而言之,这个问题的解决方案只是安装定义文件(如果可用),或者编写/存根自己(如果没有)。 他们会在TypeScript 2.0中通过它的声音使这变得更容易 ,但即便如此,创建虚拟定义需要非常代码:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM