我试图将Vanilla Tilt添加到我的TypeScript项目中。我已安装它和@types/vanilla-tilt
类型有:
export namespace VanillaTilt {
...
}
export default class VanillaTilt {
static init(...)
}
在我的代码中,我正在做import ... from 'vanilla-tilt';
的变体。我试图使用VanillaTilt.init
。
我没有能够在没有做(VanillaTilt as any).init
之类的事情的情况下找到办法。
// misnamed import. Import should be named `vanillaTilt` but found `VanillaTilt`
import VanillaTilt from 'vanilla-tilt';
// Property 'init' does not exist on typeof node_modules/@types/vanilla-tilt/index
import vanillaTilt from 'vanilla-tilt';
import { default as VanillaTilt } from 'vanilla-tilt';
// TypeScript does not throw an error, but I get `cannot read property init of undefined`.
import { VanillaTilt } from 'vanilla-tilt';
类型定义是否有问题可以正确导入?
答案 0 :(得分:2)
类型定义被破坏。这些定义使用命名导出:
export class VanillaTilt {
但实际源代码使用默认导出:
export default class VanillaTilt {
我建议向DefinitelyTyped发出拉取请求以修复它。在PR中,使用export = class VanillaTilt
(如评论中所示)与CommonJS中的用法一致。滚动您自己的固定定义,直到它合并为止。您应该可以这样使用它:
import VanillaTilt from 'vanilla-tilt'
VanillaTilt.init(...)
我将补充说,您在此表单上获得的“错误名称导入”错误实际上是一个linter错误,而不是编译器错误。您应该能够在linter配置中禁用该规则,或添加注释以免除它。