所以我有一个用 TypeScript 编写的库,它使用 NPM 依赖项“ldapjs”。
我还在我的项目中安装了 @types/ldapjs
。
所以在我的项目中,我有这个:
import {Client} from '@types/ldapjs';
import * as ldap from 'ldapjs';
现在我的问题是 - 如何向类型为 Client 的客户端添加属性?
我有这个:
export interface IClient extends Client{
__inactiveTimeout: Timer,
returnToPool: Function,
ldapPoolRemoved?: boolean
}
其中 IClient 是我的 ldapjs 客户端版本,具有一些额外的属性。
let client = ldap.createClient(this.connOpts); // => Client
client.cdtClientId = this.clientId++;
但问题是,如果我尝试向客户端添加属性,则会收到此错误:
'cdtClientId' property does not exist on type Client.
有什么方法可以将 Client 转换为 IClient 吗?
我该怎么做?我在许多不同的项目中都遇到了同样的问题。
最佳答案
虽然您添加的答案可能会解决您的问题,但您可以直接增强 Client
接口(interface)并添加属性。您甚至不需要 IClient
。您可以使用module augmentation :
declare module "ldapjs" {
interface Client {
// Your additional properties here
}
}
关于node.js - 使用 TypeScript 向现有类型添加属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44557308/