moment.js
类型定义在namespace
:
declare namespace moment {
interface Moment {
...
为了声明Moment
类型的对象,我这样做:
let myMoment: moment.Moment;
我的问题是 - 有没有办法进行"导入" moment
命名空间,所以我可以避免每次重复?非常像C#。
答案 0 :(得分:3)
我不知道是否有办法“导入”整个命名空间,但你可以逐个项目地这样做:
type Moment = moment.Moment
答案 1 :(得分:0)
如果您可以使用ES6样式导入,那么您可以执行以下操作。
import { Moment, Duration, OrAnyOtherExportedMemberFromMoment } from "moment";
let myMoment: Moment;
let myDuration: Duration;
如果您在源文件的类型定义文件中需要这个:
将compilerOptions.declaration
设置为true
中的tsconfig.json
,并使用gulp-typescript(搜索tsResult.dts.pipe
),您可以从源文件生成类型定义
希望这有帮助。