如何在浏览器中运行包含打字稿的反编译js文件的导入语句?

时间:2019-04-12 08:43:32

标签: javascript typescript

我刚接触打字稿,刚刚开始学习-我想在浏览器中执行此非常简单的代码-如何运行此代码?-

Person.ts

export class Person {
 age(): number {
  return 100;
 }
}

main.ts

import { Person } from "./Person";

const person = new Person();

window.alert(person.age());

index.html

<!DOCTYPE html>
 <html lang="en">

  <head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <script src="Person.js"></script>
  <script type="module" src="main.js"></script>

  <title>Document</title>
  </head>

  <body>

  </body>

 </html>

main.js

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Person_1 = require("./Person");
var person = new Person_1.Person();
window.alert(person.age());

Person.js(抱歉,这是编辑后的代码)

   "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var Person = /** @class */ (function () {
    function Person() {
    }
    Person.prototype.age = function () {
        return 100;
    };
    return Person;
    }());
    exports.Person = Person;

1 个答案:

答案 0 :(得分:1)

如果出现错误“未捕获的ReferenceError:未定义导出”,则可能需要安装和使用CommonJS,或者应将TypeScript编译器的模块代码生成设置设置为“ es6”。

此外,如果您在HTML文件中包含Person.js,则可能也应该将其作为模块包含进去(就像对Main.js所做的那样)。但是实际上,您可以在HTML文件中保留Person.js的内容,因为它仅由Main.js使用。