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 .
我用 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 .