如果内部模块之前有一个import语句,则它不起作用

时间:2015-12-10 17:14:29

标签: javascript import module typescript

我正在尝试从使用外部(export)模块转换为使用内部模块。但是当我删除“导出”时,我收到错误。

我有一个这样的文件:

box.ts:

import {computedFrom} from 'aurelia-framework';

module Entities {
    export class Box  { .. Stuff }

我在另一个文件中使用它。

服务actions.ts:

/// <reference path="../entities/box.ts" />

....

var box = new Entities.Box();

这给了我以下错误:

  

'typeof(Entities)'

上不存在属性'Box'

但是,如果我取出import {computedFrom} from 'aurelia-framework';,那么错误就会消失(它可以正常工作)。

我尝试将import {computedFrom} from 'aurelia-framework';移到模块中。当我这样做时,错误消失了,但我得到了一个新错误:

  

命名空间中的导入声明无法引用模块。

如何才能在班上使用computedFrom模块? (它必须是一个外部模块才能工作吗?)

1 个答案:

答案 0 :(得分:0)

总的来说,最好avoid mixing internal and external modules

外部模块(或现在已知的模块)实际上相当优雅,您可以很好地组织代码,而无需内部模块(或现在已知的命名空间)。

box.ts:

import {computedFrom} from 'aurelia-framework';

export class Box  { .. Stuff }

服务actions.ts:

import {Box} from './box'

var box = new Box();