当前位置: 首页 > 知识库问答 >
问题:

@类型/反应表:如何为我的包的用户包括配置的类型?

朱季
2023-03-14

上下文:我们正在开发一个带有React和TypeScript的UI组件库,并将React table用于我们的表组件。该库作为npm包发布,并用于我们的其他项目。

我已在名为“反应表配置”的文件中配置了类型,如“类型/反应表”的文档中所述。d、 ts。此外,我还创建了一个新类型CustomColumn。它基于列定义,并扩展其功能以支持嵌套字符串访问器(以便TypeScript可以识别foo.bar是否是给定表数据的有效字符串访问器)。

目标:我想为我们的库用户提供这种改进的TypeScript支持。我特别希望他们能够使用自定义列。

问题:当我在另一个项目中安装库软件包时,我无法访问为react table配置的类型。它们甚至不包括在包装中。

如果可能的话,我希望避免发布单独的打字包,尽管我认为这种方法可行。

到目前为止,我所尝试的是:我很惊讶这并没有立即奏效,因为我们成功地使用类似的扩展类型声明机制扩展了情感主题。为了使库用户可以使用自定义主题,我们只需将emotion.d.ts重命名为emotion.ts

我已经尝试了相同的react-table-config.d.ts(=

在解决了产生的类型冲突后,react-table-config.d.ts现在由转译器生成并包含在包中,但是当我在其他项目中使用它们时,我的自定义类型仍然没有被使用。

到目前为止,我尝试过的其他事情:

  • 适配compilerOptions.type组件库tsconfig.json中的根
  • 适配compilerOptions.pathstsconfig.json的使用库
  • 更改导入以尝试使react-table-config.d.ts成为环境模块,如本答案所述
  • 使用///

我真的很想理解为什么这不起作用,特别是因为情感的主题覆盖正在起作用。我可以指出的区别是,情感支持即时输入,因此没有单独的类型包。

如果有任何特定的代码会有所帮助,我会尝试提供它(如果可能的话)-但由于这更多的是一个系统性问题,我不想不分青红皂白地发布代码。


共有1个答案

松铭
2023-03-14
匿名用户

我通过创建一个自定义来修复它。d、 使用应用程序的“我的类型”文件夹中的ts文件。在这个文件中,我引用了我的组件库中的自定义类型

/// <reference types="<component-library>/types/react-table" />

在我的组件库类型文件夹中,我有react-table.d.ts,其中包含所有类型覆盖。类似

/* eslint-disable */
import { UseRowSelectInstanceProps, UseRowSelectRowProps, UseRowSelectState, UseTableColumnOptions } from 'react-table';

declare module 'react-table' {
    export interface ColumnInterface<D extends object = {}> extends UseTableColumnOptions<D> {
        collapse?: boolean;
        centerHeader?: boolean;
    }
    export interface TableInstance<D extends object = {}>
        extends Omit<TableOptions<D>, 'columns' | 'pageCount'>,
            UseTableInstanceProps<D>,
            UseRowSelectInstanceProps<D> {}

    export interface Row<D extends object = {}> extends UseTableRowProps<D>, UseRowSelectRowProps<D> {}

    export interface TableState<D extends object = {}> extends UseRowSelectState<D> {
        hiddenColumns?: Array<IdType<D>> | undefined;
    }
}

 类似资料:
  • 问题内容: 我正在尝试使用此Golang Yelp API软件包。在某些结构中,它使用guregu的null包中定义的类型。 我想声明一个在Yelp API包中定义的结构,其中的某些字段作为值使用(即,该结构,我正在尝试使用)。因此,在我的程序中,我同时导入了Yelp API包和guregu的null包,并尝试使用ip.Lat和ip.Lat为float64s声明该结构。(定义): 但是当我运行该程

  • 问题内容: 抱歉,标题似乎令人困惑,但请按示例进行操作。 假设我有一些带有通用类型参数的Java类: 我可以创建一个类型为存储对象的变量,并将通用参数设置为。Java还允许我将该变量分配给另一个变量,但将通用参数设置为通配符类型: 但是,在使用具有泛型参数的类时,如果将该参数的类型设置为泛型,则无法将该类的对象分配给相同类型/泛型的类型,后者(内部/嵌套)参数是通配符类型: 具体的编译错误是: 凭

  • 问题内容: 我正在一个项目中,正在使用“ database / sql”包。而且我想使用在包“ database / sql”中声明的结构“ DB”作为我的func的参数,因此我可以使用sql.Open()的返回值作为我的func的参数。有可能吗 代码如下: 此代码引发“未定义:DB”错误。 问题答案: 您必须对导入的实体使用限定符-“名称”来自的包名称:

  • 问题内容: 我有使用Maven创建jar文件的要求,但是需要使用“ foobar”扩展名将它们安装到存储库中,如果它们可以具有自己的打包类型,那么这很好,以便我们可以通过打包来识别这些工件。 我可以设置新的包装类型吗? 问题答案: 要做到像你描述,创建包装Maven项目 罐子 (如说在这里,因为不会有魔力的定义)。在src / main / resources / META-INF / plexu

  • 问题内容: 我目前正在通过处理rosalind问题(基本上是一堆与生物信息学相关的代码katas)来学习Go 。 我目前用一种类型代表一条DNA链: 我最初的原因是封装字节片,所以我知道它只包含代表核苷酸的字节:。我意识到这显然没有被保证,因为我可以这样做: 并且不再保证我的dna链包含一个字节数组,其中只有这四个字节中的元素。 由于我的结构仅包含一个字节数组,因此这样做是更好/更理想的方法: 还

  • 在 Gluon 客户端专家插件的官方文档中,“反射列表”部分解释为 将添加到缺省反射列表中的其他完全限定类的列表,该列表已包含大多数 JavaFX 类。 但是,它没有清楚地解释应该在反射列表中添加什么类型的类。在胶子样本的pom.xml文件中,该项目中的一些类没有指定。 那么,我们必须在“反射列表”中指定什么样的类呢?