Clojure 2020状态调查!中分享您的想法。

欢迎!有关此如何工作,请参阅关于页面以获取更多信息。

0
ClojureScript

https://github.com/auth0/jwt-decode

此JavaScript代码(simplified lib/index.js)

`
'use strict';
function InvalidTokenError(message) {}

InvalidTokenError.prototype = new Error();
InvalidTokenError.prototype.name = 'InvalidTokenError';

module.exports = function (token,options) {};

module.exports.InvalidTokenError = InvalidTokenError;
`

被编译为

var module$node_modules$jwt_decode$lib$index={}; module$node_modules$jwt_decode$lib$index["default"].InvalidTokenError=function(message){}; module$node_modules$jwt_decode$lib$index["default"].InvalidTokenError.prototype=new Error; module$node_modules$jwt_decode$lib$index["default"].InvalidTokenError.prototype.name="InvalidTokenError"; module$node_modules$jwt_decode$lib$index["default"]=function(token,options){}

它出现了“Uncaught TypeError: Cannot set property 'InvalidTokenError' of undefined' - 第二行”的错误。在原始代码中,函数先导出,然后给别人分配一个InvalidTokenError,而在编译的代码中,InvalidTokenError首先被赋值给尚未准备就绪的"default"属性。

1个答案

0
参考资料:https://clojure.atlassian.net/browse/CLJS-2936(由alexl设计报告)
...