2013-08-23 30 views
0

假設我想使用類似express的東西。所以我加爲其他模塊中的接口添加字段的javascript模塊的環境衰減

/// <reference path=".../express.d.ts" /> 
import express = require("express"); 

然後可以使用像ExpressServerRequest這樣的類型。

到目前爲止這麼好。但是現在我想要使用connect-flash javascript模塊。這爲ExpressServerRequest添加了一個額外的Flash功能。我很努力地看到如何定義connect-flash.d.ts,以便如果我已導入連接閃存模塊並且未另行定義,則會在ExpressServerRequest的實例上定義req.flash()。這種行爲可以在TypeScript中捕獲嗎?

回答

1

如果要擴展該項目是一個接口,他們在打字稿開放的,所以你可以添加額外像這樣:

interface ExpressServerRequest { 
    myAdditionalThing(): void; 
} 

有聲明幾乎任何東西的方式,因此,如果這ISN對於您的案例,僅僅發佈退出的ExpressServerRequest並且我會更新示例。我在Definitely Typed上檢查過的express.d.ts版本有ExpressServerRequest作爲接口。

+0

謝謝史蒂夫。但是,我想要的是擴展connect-flash.d.ts文件中的接口。如果我這樣做,並引用express.d.ts和connect-flash.d.ts,我希望ExpressServerRequest可以在調用代碼中進行擴展。但是,這似乎並沒有發生,所以我不得不在調用者中再次擴展接口。那麼如何定義myAdditionalThing.d.ts文件來擴展ExpressServerRequest,以便如果調用者引用了這兩個d.ts文件,則可以使用該屬性,但如果它們沒有引用myAdditionalThing.d.ts,則它將不可見? – user2711129

+0

Hi @Steve,對於我正在嘗試做什麼的任何想法目前都可以在TypeScript中使用。 – user2711129