的moment.js
类型定义中声明的namespace
:如何在打字稿定义文件“进口”命名空间
declare namespace moment {
interface Moment {
...
为了声明Moment
类型的对象,我做的:
let myMoment: moment.Moment;
我的问题是 - 有没有办法“导入”moment
命名空间,所以我可以避免每次重复?非常像C#。
的moment.js
类型定义中声明的namespace
:如何在打字稿定义文件“进口”命名空间
declare namespace moment {
interface Moment {
...
为了声明Moment
类型的对象,我做的:
let myMoment: moment.Moment;
我的问题是 - 有没有办法“导入”moment
命名空间,所以我可以避免每次重复?非常像C#。
我不知道是否有一种方法,以“进口”整个命名空间,但是你可以做一个项目,通过项目的基础是这样的:
type Moment = moment.Moment
如果你可以使用ES6风格进口,那么你可以简单地做下面的事情。
import { Moment, Duration, OrAnyOtherExportedMemberFromMoment } from "moment";
let myMoment: Moment;
let myDuration: Duration;
如果您需要这在你的类型定义文件从你的源文件:
随着compilerOptions.declaration
设置为true
在tsconfig.json
,并使用gulp-typescript(搜索tsResult.dts.pipe
),您可以生成类型来自您的源文件的定义。
希望这会有所帮助。