如何为Node_modules导入的TypeScript接口IMessage新增属性类型?
TypeScript扩展第三方接口属性的实现方法
由于无法修改node_modules中导入的IMessage接口,你可以通过以下两种方式为其添加errorReason: string属性:
方式一:使用类型别名结合交集类型
通过类型交集(&)将原接口与新属性合并,生成新的类型:
import { IMessage } from '你的第三方包路径'; // 扩展出包含errorReason属性的消息类型 type IMessageWithError = IMessage & { errorReason: string; };
方式二:创建新接口继承原接口
定义一个新接口,继承原IMessage接口并添加新属性:
import { IMessage } from '你的第三方包路径'; interface IMessageWithError extends IMessage { errorReason: string; }
结合现有工具类型使用
如果需要同时保留你之前的WithRequiredProperty工具类型的功能(比如将md设为必填),可以将两者结合:
type MessageWithMdEnforcedAndError = WithRequiredProperty<IMessage, 'md'> & { errorReason: string; };
之后在代码中需要使用带errorReason属性的消息时,直接使用上述新定义的类型即可。
内容的提问来源于stack exchange,提问作者Srushti Shah
相关产品推荐
相关产品推荐

