找不到导入的Module TypeScript

时间:2015-10-21 16:05:51

标签: typescript

我正在尝试在VS 2015中设置新的 TypeScript HTML项目。我已将typescript构建设置设置为 commonJs es5 以及有 tsconfig.json ,这是

   {
 "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "sourceMap": true
   }
}

这是我的主要 app.ts

  import t = require('./test');

class Greeter {
element: HTMLElement;
span: HTMLElement;
timerToken: number;
t: any;

constructor(element: HTMLElement) {
    this.element = element;
    this.element.innerHTML += "The time is: ";
    this.span = document.createElement('span');
    this.element.appendChild(this.span);
    this.span.innerText = new Date().toUTCString();
    this.t = new t.sample.test();
}

start() {
    this.timerToken = setInterval(() => this.span.innerHTML = new Date().toUTCString(), 500);
    this.t.hello();
}

stop() {
    clearTimeout(this.timerToken);
  }

 }

 window.onload = () => {
  var el = document.getElementById('content');
   var greeter = new Greeter(el);
   greeter.start();
};

这是我导入的模块 test.ts

   export module sample {
export class test {
    constructor() { }
    hello = () => {

        console.log("Test");
    }
  }
 }

这是html。

    <!DOCTYPE html>

    <html lang="en">
    <head>
     <meta charset="utf-8" />
      <title>TypeScript HTML App</title>
   <link rel="stylesheet" href="app.css" type="text/css" />
  <script src="test.js"></script>
  <script src="app.js"></script>


    </head>
   <body>
    <h1>TypeScript HTML App</h1>
   <div id="content"></div>
   </body>
   </html>

项目构建正常,但是当我在浏览器chrome或IE中打开它时,它会在控制台中抛出错误,找不到测试,并且文件永远不会下载到浏览器中。任何人都可以提出我在这里缺少的东西。

1 个答案:

答案 0 :(得分:0)

这是我推荐的修复方法......

第一步 - 为AMD(或UMD)而不是CommonJS编译:

"module": "amd",

第二步 - 在此处抛弃内部模块:

  export module sample {

第三步 - 添加RequireJS(可用作NuGet包)

第四步 - 使用Require JS

<script src="require.js" data-main"app"></script>