如何在打字稿中为 类 使用单独的文件?

How to use separate files for classes in typescript?

我正在弄清楚如何构建一个打字稿应用程序,其中所有 类 都保存在单独的 .ts 文件中。我正在使用 VS 代码。编译任务似乎工作正常(.ts 文件被转换为 .js 文件),但是当我将 main.js 文件加载到我的 HTML 页面时,我得到这个 javascript 错误:

Can't find variable: require

我的打字稿代码:

// __________ car.ts __________ 
class Car {
    color: string;

    constructor(color: string) {
        this.color = color;
        console.log("created a new " + color + " car");
    }
}
export = Car;

// __________ main.ts __________ 
import Car = require('car');

class Startup {
    public static main(): number {
        console.log('Hello World');
        var c = new Car("red");
        return 0;
    }
}

我的 tsconfig 文件:

{
    "compilerOptions": {
        "module": "commonjs",
        "sourceMap":  true
    },
     "files": [
        "car.ts",
        "main.ts"
    ]
}

我在这里缺少哪一步?为什么 javascript 需要一个叫做 'require' 的东西?或者有另一种方法可以在单独的文件中使用 类 吗?

require 函数是一个 part of NodeJS. In order to make require work in browsers, you need to install requirejs.

如果您想使用内部模块,请将 outFile 添加到您的 tsconfig.json:

{
    "compilerOptions": {
        "module": "commonjs",
        "sourceMap":  true,
        "outFile": "app.js"
    },
     "files": [
        "car.ts",
        "main.ts"
    ]
}

并在 index.html 文件中添加 <script src="app.js"></script>

编辑:TypeScript-Handbook: Splitting Across Files

要在编码时相互引用文件,请在每个文件的最顶部使用 ///<reference path="someOtherScript.ts" />

First, we can use concatenated output using the --out flag to compile all of the input files into a single JavaScript output file: tsc --out sample.js Test.ts

"outFile": "app.js"放入"compilerOptions": {


您可以将所有 .ts 个文件编译到一个 .js 文件中。这就是我一直在使用的。一个 JS 文件,但干净的 TypeScript 代码。

在 Visual Studio 中是 <TypeScriptOutFile>myfile.js</TypeScriptOutFile>。在 Visual Code 中可能类似?