2015-04-12 61 views
5

我现在遇到的问题与ES6模块默认导入:打字稿1.5:CommonJS的“出口=”(?.d.ts唯一的问题)

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'); 

想法?

+0

链接复制的语法? –

回答

18

您正在寻找

import * as moment from "moment"; 
+0

适合我,谢谢! –

+1

对不起,这是不正确的,请参阅http://stackoverflow.com/a/29598404/252087 –

+0

谢谢。我已要求澄清:https://github.com/Microsoft/TypeScript/issues/2242#issuecomment-92218146 – basarat