我用 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
声明都将到函数的顶部。您的 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 .
关于javascript - TypeScript 产生无法访问的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39017932/