TypeScript 1.5:ES6模块默认导入CommonJS 'export ='(仅限.d.ts问题?)

5

我遇到了一个问题:

import moment from 'moment';

moment本身是一个函数,作为默认的CommonJS导出,代码在这里编写https://github.com/borisyankov/DefinitelyTyped/blob/master/moment/moment.d.ts

interface MomentStatic {
    (): Moment;
    (date: number): Moment;
    ...
}
declare var moment: moment.MomentStatic;
declare module 'moment' {
    export = moment;
}

以下似乎无法正常工作:
import * from 'moment';
// error TS1005: 'as' expected.
// error TS1005: 'from' expected.

import moment from 'moment';
// error TS1192: External module ''moment'' has no default export.

import {default as moment} from 'moment';
// error TS2305: Module ''moment'' has no exported member 'default'.

require语法仍然可用...但我正在尝试避免使用它。

import moment = require('moment');

有何想法?
1个回答

19

您正在寻找的语法

import * as moment from "moment";

没问题,谢谢! - Matt Traynham
1
抱歉,这不正确,请参见https://dev59.com/lV0b5IYBdhLWcg3wGN_f#29598404。 - C Snover
谢谢。我已经要求澄清:https://github.com/Microsoft/TypeScript/issues/2242#issuecomment-92218146 - basarat
@CSnover 我已将此标记为重复,并指向了您的答案 :heart: - basarat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接