相关疑难解决方法(0)

Typescript ReferenceError:未定义导出

尝试按照官方手册实现模块,我收到以下错误消息:

未捕获的ReferenceError:未定义导出

在app.js:2

但我的代码中没有任何地方使用该名称exports.

我怎样才能解决这个问题?


app.ts

let a = 2;
let b:number = 3;

import Person = require ('./mods/module-1');
Run Code Online (Sandbox Code Playgroud)

模块1.T

 export class Person {
  constructor(){
    console.log('Person Class');
  }
}
export default Person;
Run Code Online (Sandbox Code Playgroud)

tsconfig.json

{
   "compilerOptions": {
        "module": "commonjs",
        "target": "es5",
        "noImplicitAny": false,
        "sourceMap": true,
        "outDir": "scripts/"
    },
    "exclude": [
        "node_modules"
    ]
}
Run Code Online (Sandbox Code Playgroud)

module typescript

76
推荐指数
11
解决办法
13万
查看次数

转译在浏览器中使用的打字稿

我正在尝试在 Typescript 中编写我的前端代码并希望导出代码,我的浏览器可以在 <script src="..."></script>.

我是通过 browserify 和 tsify 这样做的。我的问题是我的代码不能在全局命名空间中访问。将脚本加载到<script>标签中会执行它,当然,但是如果我打算像可以在 inline <script>s 或类似中使用的函数库一样加载它怎么办?

更新

一个例子是

索引.ts

function foo(): void {
    console.log("bar");
}
Run Code Online (Sandbox Code Playgroud)

使用以下 conf 编译会产生以下 javascript

配置文件

{
    "compilerOptions": {
        "module": "UMD",
        "target": "es5",
        "noImplicitAny": true,
        "removeComments": true,
        "preserveConstEnums": true,
        "sourceMap": true
    }
}
Run Code Online (Sandbox Code Playgroud)

索引.js

function foo() {
    console.log("bar");
}
Run Code Online (Sandbox Code Playgroud)

这可以。但是,如果 index.js 导入了一些东西,例如我的notification函数,那么我会得到这个

(function (factory) {
    if (typeof module === 'object' && typeof module.exports === 'object') {
        var v = factory(require, exports); if (v …
Run Code Online (Sandbox Code Playgroud)

javascript browserify typescript

7
推荐指数
1
解决办法
7176
查看次数

标签 统计

typescript ×2

browserify ×1

javascript ×1

module ×1