Visual Studio 打字稿“Uncaught ReferenceError:exports is not defined at...." [英] visual studio typescript "Uncaught ReferenceError: exports is not defined at...."
本文介绍了Visual Studio 打字稿“Uncaught ReferenceError:exports is not defined at...."的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用 Visual Studio 学习 typeScript 并尝试进行简单的类导出.我已经多次看到这个问题,但没有一个解决方案对我有帮助.我做错了什么?
- 我已将模块系统从 CommonJs 更改为系统
- 我已经安装了 npm systemJs
- 尝试代替import"写///...引用路径..../"
仍然是同样的错误Uncaught ReferenceError:exports is not defined at..."
import { Address } from "./address";类客户{受保护的名称:字符串 = "";公共地址对象:地址 = 新地址();私人 _CustomerName: 字符串 = "";公共集客户名称(值:字符串){如果(值.长度== 0){抛出客户名称需要"}this._CustomerName = 值;}公共获取客户名称():字符串{返回 this._CustomerName;}}
导出类地址{公共街道1:字符串=";}
<头><title></title><meta charset="utf-8"/>头部><身体><script src="address.js"></script><script src="Customer.js"></script><脚本>尝试 {cust = 新客户();cust.CustomerName = "doron";cust.addressObj.street1 = "测试"}赶上(前){警报(例如);}</html>
我还没有做什么?!?!
解决方案
我刚刚解决了这个问题.或者更确切地说,我发现了一篇博客文章
Greeter.ts
export class Greeter {元素:HTMLElement;跨度:HTMLElement;timerToken:数字;构造函数(元素:HTMLElement){this.element = 元素;this.element.innerText += "时间是:";this.span = document.createElement('span');this.element.appendChild(this.span);this.span.innerText = new Date().toUTCString();}开始() {this.timerToken = setInterval(() => this.span.innerText = new Date().toUTCString(), 500);}停止() {clearTimeout(this.timerToken);}}
AppConfig.ts
import { AppMain } from "./AppMain"要求(['AppMain'],(主要:任何)=>{var appMain = new AppMain();appMain.run();});
AppMain.ts
import { Greeter } from "./classes/Greeter"导出类 AppMain {公共运行(){//来自 window.onload 的代码var dummyEl: HTMLElement = document.createElement('span');var theEl: HTMLElement |null = document.getElementById('content');;var el: HTMLElement = theEl !== null ?theEl : dummyEl;var 迎宾员:迎宾员 = 新迎宾员(el);欢迎语.start();}};
或者使用:
var theEl: HTMLElement = document.getElementById('content');var 迎宾员:迎宾员 = 新迎宾员(theEl);
并且要意识到,在您转译时所谓的错误"只是一个警告!:
app/AppMain.ts(7,13): 错误 TS2322: Type 'HTMLElement |null' 不可分配给类型 'HTMLElement'.类型 'null' 不能分配给类型 'HTMLElement'.
app.ts
不再使用
index.html
<头><meta charset="utf-8"/><title>TypeScript HTML 应用</title><link rel="stylesheet" href="app.css" type="text/css"/><!--<script type="text/javascript" src="app/classes/Greeter.js"></script><script src="app.js"></script>--><script data-main="app/AppConfig" type="text/javascript" src="lib/require.js"></script>头部><身体><h1>TypeScript HTML 应用程序</h1><div id="内容"></div>