首页 > 解决方案 > Typescript - 从 npm 包接口部分覆盖类型

问题描述

我正在编写一个打字稿包,其中我有使用该类型的类型和接口。
而且我想在不接触接口的情况下使类型可定制。
我知道我可以使用声明文件完全覆盖或扩展包类型,但在这种情况下,它将是部分覆盖。

在我的包裹中,我有类似的东西:(
带有更多道具和类型)

// @package/typings.ts

type Color = 'white' | 'black';

interface IComponent {
  color?: Color;
}

在我使用该包的项目中,我有我的自定义颜色类型

// my-project/typings.ts

type Color = 'red' | 'blue';

但我找不到将包接口与用户定义类型一起使用的方法。
我试图达到的结果是这样的:

my-component.tsx

import React from 'react';
import { IComponent } from '@package';

const Mycomponent: React.FC<IComponent> = ({color = 'red'}) => { ... }

是否可以在不重写整个声明文件的情况下使其工作?

标签: typescript

解决方案


推荐阅读