TypeScript:如何在d.ts文件中导入类型化模块(在npm包中)?

时间:2016-07-02 23:23:26

标签: typescript npm definition

我们正在尝试在依赖于React的npm包中包含定义文件。

图书馆是https://github.com/eiriklv/react-masonry-component

在TypeScript项目的自定义d.ts文件中提供以下定义可以正常工作:

declare module "react-masonry-component" {
  import React = __React;

  interface MasonryPropTypes {
    disableImagesLoaded: boolean;
    options: Object;
    className: string;
    elementType: string
  }

  export var Masonry: React.Component<MasonryPropTypes, void>;
}

问题是包中的d.ts文件中的相同定义(在typings中设置了正确的package.json)并不起作用,因为它没有&# 39; t识别通过来自DefinitelyTyped的tsd / typings提供的__React类型。

如何正确处理此问题?我们是否必须复制React的声明只是为了让编译器满意或有没有办法包含React.Component

1 个答案:

答案 0 :(得分:0)

没有足够的声誉来发表评论,但是想知道你是否有这个?看起来您在使用Typings或任何其他typedef管理器并且完全依赖于tsd的模块解析。正确的吗?

我在本期中提到了这个问题:https://github.com/typings/typings/issues/645

认为我们在这里偶然发现了同样的事情,并将以解决方案进行编辑。

修改 关于你没有使用typedef管理器的评论我不正确。你清楚地说明了这一点,虽然我在你的回购中没有明确地看到任何东西。

Cliffnotes让这一切按照你想要的方式工作:我建议你用Typings作为经理;从package.json中删除typings条目,而在typings.json中指向它,将允许导入解析。