开发者社区> 问答> 正文

请问从TypeScript编译的JS无法在浏览器中运行,怎么办?

TypeScript代码正确编译。但是(可能)由于我的类结构而导致的编译结果与预期的不同。导致运行时错误。

导致错误本身的实际问题是

this.Scene = new THREE.Scene(); 运行TSC后,我得到这一行

this.Scene = new three_1.default.Scene(); 我可以删除默认参数并对其进行修复。但是,每次都这样做似乎是一个坏主意。我宁愿知道潜在的问题。上下文类,以防与我正在使用的结构相关。抱歉,我对打字稿比较陌生(一个星期前开始使用JS,但是我确实拥有.NET学位)

import { MaterialLibrary } from "./Materials/MaterialLibrary"; import { MeshLoader } from "./MeshLoader"; import THREE from "three";

export class Manager { //manager instance private static instance: Manager;

//sub-managers
public static MaterialLib: MaterialLibrary;
public static Scene: THREE.Scene;

//helper classes
public static MeshLoader: MeshLoader;

constructor()
{
    Manager.instance = this;
}

static Init()
{
    this.MaterialLib = new MaterialLibrary();
    this.MeshLoader = new MeshLoader();
    this.Scene = new THREE.Scene();
}

static GetInstance(): Manager
{
    if(!Manager.instance)
    {
        Manager.instance = new Manager();
    }

    return Manager.instance;
}

} 并编译为

"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const MaterialLibrary_1 = require("./Materials/MaterialLibrary"); const MeshLoader_1 = require("./MeshLoader"); const three_1 = __importDefault(require("three")); class Manager { constructor() { Manager.instance = this; } static Init() { this.MaterialLib = new MaterialLibrary_1.MaterialLibrary(); this.MeshLoader = new MeshLoader_1.MeshLoader(); this.Scene = new three_1.default.Scene(); } static GetInstance() { if (!Manager.instance) { Manager.instance = new Manager(); } return Manager.instance; } } exports.Manager = Manager;

展开
收起
被纵养的懒猫 2019-09-23 17:22:03 749 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
在 IoT 设备进行 JavaScript 开发的探索之路 立即下载
基于浏览器的实时构建探索之路 立即下载
基于浏览器的实时构建探索之路--玄寂 立即下载