TypeScript生成无法访问的代码

时间:2016-08-18 12:13:03

标签: javascript typescript transpiler

我在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;
}

我不明白返回语句应该完成后var _a;的内容。这对我来说似乎没有意义,因为该行永远不会被执行。这是TypeScript中的错误,还是有更深层的含义?

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

1 个答案:

答案 0 :(得分:7)

这不是错误,只有 variable hoisting 。每个var声明都会到函数的顶部。您{ {1}}将等同于此。

Javascript

您还可以看到this