我有一个声明接口的库。
export interface Block {
readonly type: BlockType
}
export enum BlockType {
content = 'content',
html = 'html',
section = 'section',
}
这个库 Package 了一个API,但是,当我在不同的项目中使用这个API时,我在type
中得到了不同的值,所以我需要创建一个新的enum
,并将其强制馈送到Block
。
我需要重写这个接口,使它的type
参数具有完全不同的、不兼容的类型。
declare module 'nice-lib' {
export enum BlockType {
article = 'article',
}
export interface Block {
readonly type: BlockType
}
}
但是,我得到这个错误:
“Block”的所有声明必须具有相同的类型参数。
有道理,但我需要撤销它。怎么做?
1条答案
按热度按时间dgsult0t1#
您正在尝试更改type属性的类型,这是不允许的,因为Block接口被定义为只读,这意味着它不能被修改。
解决此问题的一种方法是在您自己的项目中创建一个新接口,该接口扩展Block接口,但type属性具有不同的类型。使用extends关键字并为type属性提供新类型。例如:
这将创建一个新接口MyBlock,它扩展了Block接口,但type属性具有不同的类型。然后,您可以在自己的代码中使用MyBlock接口,并且type属性的类型将为MyBlockType而不是BlockType。