2

不知何故,如果没有关于代码未正确标记的错误,我就无法提出这个问题,所以我将其中的大部分内容移到了 GitHub: https ://github.com/JoepBC/typescript-packages-example-error

问题归结为:使用 GitHub 上的包结构(使用 TypeScript、webpack 和 ts-loader),我有两个包 LibA 和 LibB,其中 LibB 想要从编译的 LibA TS->JS 代码中加载对象( LibA 的 .d.ts 定义文件创建良好)。

'~/A/src/index.ts' 的代码如下:

import {TestExport} from './test_export.ts';
export class Foo extends TestExport {
    constructor(text:string) {
        super(text);
        console.log("added by the extended class");
    }
}
let a = new Foo('bar');

'~/A/src/test_export.ts' 的代码是:

export class TestExport {
    constructor(text:string) {
        console.log("TestExport constructor argument:"+text);
    }
}

'~/B/src/index.ts' 的来源是:

import * as LibA from 'liba';
console.log('----');
let a = new LibA.Foo('arg1');

为 Lib A 生成的 javascript 代码按预期运行。Lib B 尝试从 A 导入(因为 A 从同一个包中的另一个文件 [虽然未编译] 导入),并且来自 A 的 javascript 代码可以在 B 中运行,但在 BI 中无法从来自的类启动新对象一个。

运行 B 时的结果是:

~/B/dist $ node index.js 
TestExport constructor argument:bar
added by the extended class
----
webpack:///./src/index.ts?:5
var a = new LibA.Foo('arg1');
        ^
TypeError: LibA.Foo is not a constructor
    at eval (webpack:///./src/index.ts?:5:9
    at Object../src/index.ts (~/B/dist/index.js:108:1)
    at __webpack_require__ (~/B/dist/index.js:20:30)
    at ~/B/dist/index.js:84:18
    at Object. (~/B/dist/index.js:87:10)
    at Module._compile (module.js:641:30)
    at Object.Module._extensions..js (module.js:652:10)
    at Module.load (module.js:560:32)
    at tryModuleLoad (module.js:503:12)
    at Function.Module._load (module.js:495:3)

在 B 中要求/导入 A 的不同方式似乎也不起作用......应该怎么做?提前致谢。

4

0 回答 0