TypeScript 产生无法访问的代码

TypeScript produces unreachable code

我用 TypeScript 写了下面的函数

function initializeTasksPerUserJSON(task)
{
    const tasksPerUser = {
        'username': task.mantisUsername,
        'duration_minutes': task.mantisBugNoteDurationSum,
        'categories': {
            [task.mantisBugCategoryName]: initializeTaskCategoriesJSON(task)
        }
    };

    return tasksPerUser;
}

转译为以下 JavaScript

function initializeTasksPerUserJSON(task) {
    var tasksPerUser = {
        'username': task.mantisUsername,
        'duration_minutes': task.mantisBugNoteDurationSum,
        'categories': (_a = {},
            _a[task.mantisBugCategoryName] = initializeTaskCategoriesJSON(task),
            _a
        )
    };
    return tasksPerUser;
    var _a;
}

我不明白 return 语句之后的 var _a; 应该完成什么。这对我来说似乎很荒谬,因为该行从未执行过。这是 TypeScript 中的错误,还是有更深层的含义?

我正在使用没有任何编译器标志的 tsc 版本 1.8.10。

这不是错误,这只是 variable hoisting。每个 var 声明都到顶部 的 function.You Javascript 将等同于此。

function initializeTasksPerUserJSON(task) {
    var _a; // See here
    var tasksPerUser;
    tasksPerUser = {
        'username': task.mantisUsername,
        'duration_minutes': task.mantisBugNoteDurationSum,
        'categories': (_a = {},
            _a[task.mantisBugCategoryName] = initializeTaskCategoriesJSON(task),
            _a
        )
    };
    return tasksPerUser;

}

您还可以看到 this .