当typescript文件在顶部有导入时,从JavaScript示例化typescript类不起作用

qni6mghb  于 2023-08-02  发布在  Java
关注(0)|答案(1)|浏览(107)

我有一个这样的typescript文件:

class FieldModel
{
    constructor() {  console.log('test'); }
}

字符串
当我从普通的JavaScript或浏览器控制台使用new FieldModel()示例化FieldModel时,它工作得很好,因为tsc生成了以下javascript:

var FieldModel = /** @class */ (function () {
    function FieldModel() {
        console.log('test');
    }
    return FieldModel;
}());


但是当上面的ts文件有一个如下的导入声明时,我就不能示例化FieldModel,因为我得到了一个错误,即class没有定义。

import {Subject} from "rxjs";

class FieldModel
{
    constructor() {
        console.log('test');
        new Subject(); 
    }
}


tsc为上面的代码生成下面的JavaScript:

define("Path/to/the/typescript/file/without/extension", ["require", "exports", "rxjs"], function (require, exports, rxjs_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var FieldModel = /** @class */ (function () {
        function FieldModel() {
            console.log('test');
            new rxjs_1.Subject();
        }
        return FieldModel;
    }());
});


我只想能够从遗留的JavaScript代码(或浏览器控制台)访问FieldModel类,但我不知道如何绕过第二个代码片段生成的定义。

rkue9o1l

rkue9o1l1#

我的tsconfig中的模块设置被设置为amd,这使得JavaScript输出看起来像上面一样。所以我不得不learn如何使用时的输出是这样的。

相关问题