这是我的vue.js代码:
interface ClientApplicationPriorityRepository : JpaRepository<ClientApplicationPriority, Long> {
fun deleteAllByClientId(clientId: String): Int
}
问题线可以在浏览器中成功运行,而不会出现任何错误并通过vue-cli编译过程。但是,当我尝试不对这个组件进行测试时,它可能会报告编译错误:
@Transactional
public void saveClientApplicationPriorities(String clientId, Boolean isFoldersPresented, List<ClientApplicationPriority> clientApplicationPriorities) {
clientApplicationPriorityRepo.deleteAllByClientId(clientId);
clientApplicationPriorityRepo.flush();
if (isFoldersPresented) {
clientApplicationPriorityRepo.saveAll(clientApplicationPriorities);
}
}
因此,如果该应用程序可以在浏览器中运行,为什么它不能以玩笑方式运行?我可以跳过此编译错误吗?
答案 0 :(得分:0)
ReferenceError
不是编译而是运行时错误。 let t = typeof t === 'undefined' ? {} : t
是无效的ES6代码。 let
在其分配之前一直处于块范围内,并处于时间盲区,因此在分配期间引用变量是错误的。
这在Jest中不起作用,因为Node.js完全支持ES6,不需要将其编译为ES5,而在浏览器版本中,它可以编译为:
var t = typeof t === 'undefined' ? {} : t;
var
的声明被悬挂,因此t
变量在赋值期间被定义,因此它与:
var t; // t === undefined
// ...everything that happens in this scope...
t = typeof t === 'undefined' ? {} : t; // always results in t = {}
该条件无用,因为它永远不会达到else
,写它的正确方法是:
let t = {};