首页 文章

即使有错误,TS2304也可以编写打字稿

提问于
浏览
0

我正在使用Typescript进行一些测试,甚至当我强制执行错误时,代码也会编译为javascript . 我正在使用vscode任务进行编译 .

app.ts

function getAllBooks() {
    let books = [
        { title: "book1", author: "author1", available: true },
        { title: "book2", author: "author2", available: false },
        { title: "book3", author: "author3", available: true }
    ];

    return books;
}


function logFirstAvailable(books) {
    let numberOfBooks = books.length;

    for (let book of books) {
        let firstAvailable = "";

        if (book.available) {
            firstAvailable = book.title;
            break;
        }
    }

    console.log('Total books: ' + numberOfBooks);
    console.log('First Available: ' + firstAvailable); // error TS2304: Cannot find name 'firstAvailable'.
}

const ALL_BOOKS = getAllBooks();
logFirstAvailable(ALL_BOOKS);

app.js

function getAllBooks() {
    var books = [
        { title: "book1", author: "author1", available: true },
        { title: "book2", author: "author2", available: false },
        { title: "book3", author: "author3", available: true }
    ];
    return books;
}
function logFirstAvailable(books) {
    var numberOfBooks = books.length;
    for (var _i = 0, books_1 = books; _i < books_1.length; _i++) {
        var book = books_1[_i];
        var firstAvailable = "";
        if (book.available) {
            firstAvailable = book.title;
            break;
        }
    }
    console.log('Total books: ' + numberOfBooks);
    console.log('First Available: ' + firstAvailable);
}
var ALL_BOOKS = getAllBooks();
logFirstAvailable(ALL_BOOKS);
//# sourceMappingURL=app.js.map

tasks.json

{
    "version": "0.1.0",
    "command": "tsc",
    "isShellCommand": true,
    "args": [
        "--target", "ES5",
        "--outdir", "js",
        "--sourceMap",
        "--watch",
        "app.ts"
    ],
    "showOutput": "silent",
    "problemMatcher": "$tsc"
}

tsconfig.json

{
    "compilerOptions": {
        "module": "commonjs"
    }
}

如果这是正常行为,如果发生任何错误,如何阻止打字稿编译?

1 回答

  • 1

    你试过 --noEmitOnError 吗?阅读 tsc --help 下列出的参数听起来就像票 .

    {
        "version": "0.1.0",
        "command": "tsc",
        "isShellCommand": true,
        "args": [
            "--target", "ES5",
            "--outdir", "js",
            "--sourceMap",
            "--noEmitOnError",
            "--watch",
            "app.ts"
        ],
        "showOutput": "silent",
        "problemMatcher": "$tsc"
    }
    

相关问题