我创建了一个Gui库,当我在项目中测试时,它可以正常工作。现在我想将它用作库,用于我的声音生成应用程序 看起来很简单,但是尽管我的参考或编译器选项有很多变化,但我无法得到任何东西......
我在两个es5
文件中使用1.6.2版本的打字稿,目标commonjs
,module
用于tsconfig.json
。 moduleResolution
是classic
。
我不知道这是否重要,但我使用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 ???
答案 0 :(得分:0)
如果在文件中导出了多个类,则使用模块是有意义的。
如果您希望将类作为模块本身导出,则可以尝试export =
例如:
class RoundRect {
....
}
export = RoundRect;