2017-07-24 97 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),您可以生成类型来自您的源文件的定义。

希望这会有所帮助。