2017-06-15 41 views
0

所以我有一個用TypeScript編寫的庫,它使用NPM依賴性'ldapjs'。使用TypeScript向現有類型添加屬性

我也有@types/ldapjs安裝到我的項目中。

所以,在我的項目,我有這樣的:

import {Client} from '@types/ldapjs'; 
import * as ldap from 'ldapjs'; 

現在,這裏是我的問題 - 怎樣才能添加屬性到客戶端與客戶端類型?

我有這樣的:

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.

有一些方法可以讓我投客戶端IClient?

我該怎麼做?我在許多不同的項目中遇到同樣的問題。

回答

1

雖然你已經添加的答案可能解決您的問題,您可以直接增加了Client界面和添加的屬性。你甚至不需要IClient。你可以使用module augmentation

declare module "ldapjs" { 
    interface Client { 
     // Your additional properties here 
    } 
} 
+0

不錯,這很酷我會嘗試它 –

相關問題