无法在我的应用中使用外部库

时间:2015-12-03 11:51:01

标签: module typescript

我创建了一个Gui库,当我在项目中测试时,它可以正常工作。现在我想将它用作库,用于我的声音生成应用程序 看起来很简单,但是尽管我的参考或编译器选项有很多变化,但我无法得到任何东西......

我在两个es5文件中使用1.6.2版本的打字稿,目标commonjsmodule用于tsconfig.jsonmoduleResolutionclassic

我不知道这是否重要,但我使用experimentalDecorators并输出declaration文件和内联源地图。

到目前为止我所拥有的是(简化版):

•••图书馆文件•••

shapes.ts
shapes/rect.ts
shapes/roundrect.ts

shapes.ts是主要模块。由于我已经读过文件已经是模块,我没有使用module关键字。

// shapes.ts
/// <reference path="./shapes/rect.ts"/>
/// <reference path="./shapes/roundrect.ts"/>
export * from "./shapes/rect.ts";
export * from "./shapes/roundrect.ts"

-

// rect.ts
export class Rect {
  x : number;
  y : number;
  ... 
}

-

// roundrect.ts
/// <reference path="./rect.ts"/>

import {Rect} from "./rect.ts";

export class RoundRect extends Rect {
  cornerRadius : number;
  ... 
}

•••应用程序文件•••

对于App文件,我做了很多尝试,我希望能够写:

var MyRect = new Rect();

或:

var MyRect = new Shapes.Rect();

所以我尝试了很多导入语法,因为没有两个博客或文档对此语法说同样的内容:

import  * as Shapes from '../../shapes/dst/shapes';

或者

import Shapes = require('../../shapes/dst/shapes');

或者

import  {Rect, RoundRect} from '../../shapes/dst/shapes';

或者

var Shapes = require('../../shapes/dst/shapes');

(或src而不是dst文件夹中的所有上述示例)。

所有这些示例都在编辑器中标记为错误的路径。

我还尝试了上面的所有例子,有或没有:

/// <reference path="../../shapes/rect.ts"/>

Rq路径用引用标记为正确,但在使用引用路径时,有很多“找不到模块”错误。

所以底线,我总是得到,为模块导入,同样的错误:

Cannot find module '../../shapes/dst/shapes'

¿¿¿我怎样才能使用我的lib ???

1 个答案:

答案 0 :(得分:0)

如果在文件中导出了多个类,则使用模块是有意义的。 如果您希望将类作为模块本身导出,则可以尝试export = 例如:

class RoundRect {
    ....
}
export = RoundRect;

http://www.typescriptlang.org/Handbook#modules-export-