导入类可在控制台中工作,但不能在浏览器中工作

时间:2018-07-21 01:35:08

标签: javascript html typescript

每当我使用节点在控制台中运行main.js时,一切都可以正常打印。但是,每当我尝试通过浏览器(通过HTML文件)运行它时,都不会在控制台上打印任何内容。

但是,当我注释掉Vector.ts代码中对main.js的所有引用时,就会打印“ Hello,World”。我相信这与导入有关,但是我不确定-我对Web开发总体而言是新手。

代码:

  

main.ts

/// <reference path = "Vector.ts" />

import { Vector } from "./Vector"

class Startup {
    public static main(): number {
        console.log('Hello, World!!');

        //Test Vector classes
        let v = new Vector(1, 2);
        let w = new Vector(3, 4);
        console.log(v.dotProduct(w));
        
        return 0;
    }
}

Startup.main();

  

Vector.ts

export class Vector {
    
    constructor(private a: number, private b: number) {
        console.log("TEST");
    }

    dotProduct(v: Vector) :number {
        return this.a * v.a + this.b * v.b;
    }

}

  

tsconfig.json

{
    "compileOnSave": true,
    "compilerOptions": {
        "target": "es2015",
        "module": "umd",
        "sourceMap": true,
        "strict": true,
        "noImplicitReturns": true,
        "noUnusedParameters": true,
        "noUnusedLocals": true,
        "watch": true
    }
}

1 个答案:

答案 0 :(得分:0)

您是否将js方法调用放在document.onLoad()块中?

我不确定您的完整情况,但有时会发生在HTML完全加载之前调用该方法的情况。也许您可以尝试将js函数调用代码(Startup.main() )放在document.onLoad()块中并查看。