2017-07-24 92 views
2

moment.js類型定義中聲明的namespace如何在打字稿定義文件「進口」命名空間

declare namespace moment { 
    interface Moment { 
... 

爲了聲明Moment類型的對象,我做的:

let myMoment: moment.Moment; 

我的問題是 - 有沒有辦法「導入」moment命名空間,所以我可以避免每次重複?非常像C#。

回答

3

我不知道是否有一種方法,以「進口」整個命名空間,但是你可以做一個項目,通過項目的基礎是這樣的:

type Moment = moment.Moment 
0

如果你可以使用ES6風格進口,那麼你可以簡單地做下面的事情。

import { Moment, Duration, OrAnyOtherExportedMemberFromMoment } from "moment"; 
let myMoment: Moment; 
let myDuration: Duration; 

如果您需要這在你的類型定義文件從你的源文件:

隨着compilerOptions.declaration設置爲truetsconfig.json,並使用gulp-typescript(搜索tsResult.dts.pipe),您可以生成類型來自您的源文件的定義。

希望這會有所幫助。