我正在尝试从使用外部(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
模块? (它必须是一个外部模块才能工作吗?)
答案 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();