首页 文章

VS Code无法识别Typescript内部模块

提问于
浏览
2

我试图使用内部模块在单独的文件中分离我的打字稿类 . 但是,main.ts文件不会加载或识别子模块 .

main.ts

/// <reference path="Car.ts" />
module Vehicles {
    var c = new Vehicles.Car("red");
}

car.ts

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

tsconfig.json

{
    "compilerOptions": {
        "sourceMap":  true, 
        "out": "everything.js main.ts car.ts"
    }
}

Update :编辑了tsconfig中的"out"标志,尝试将main.ts和car.ts编译成everything.js - 这是最后一个不起作用的部分:everything.js没有创建 . 相反,VS Code创建了一个main.js和一个car.js.似乎忽略了"out"标志 . 我也尝试了"outFile",结果相同 .

2 回答

  • 2

    要使用VS Code任务将几个.ts文件编译成一个大的.js文件,您需要从tasks.json中删除'args'并将“out”参数添加到tsconfig.json中

    tasks.json

    {
        "version": "0.1.0",
        "command": "tsc",
        "isShellCommand": true,
        "showOutput": "silent",
        "problemMatcher": "$tsc"
    }
    

    tsconfig.json

    {
        "compilerOptions": {
            "sourceMap":  true,
            "out": "myapp.js"
        }
    }
    

    注意:在命令行中指定输入文件时,将忽略tsconfig.json文件 .

  • 1

    main.ts

    /// <reference path="car.ts" />
    var c = new Car("red");
    

    car.ts

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

    tsconfig.json

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

    tasks.json

    科科多科:我终于找到了问题!你必须在“tasks.json”中使用OMIT“args”选项,然后才能使用tsconfig.json中的参数!我在这里找到了答案:github.com/Microsoft/typescript/wiki/tsconfig.json . 它说:在命令行中指定输入文件时,将忽略tsconfig.json文件


    有关模块的更多信息,请不要忘记查看TypeScript Handbook

相关问题