【发布时间】:2020-05-26 14:52:30
【问题描述】:
在使用 JSDoc cmets 注释 JavaScript 源代码时,如何注释 try..catch 标识符的类型?
try {
throw new Error();
} catch (whatIsMyType) {
console.error(whatIsMyType.message);
}
我特别要求TypeScript JSDoc dialect,但Closure Compiler dialect 甚至JSDoc itself 的答案会很有见地。
我试过(对于 TypeScript):
try { throw new Error(); } catch (/** @type {Error} */ e) {/*...*/}
try { throw new Error(); } /** @param {Error} e*/ catch (e) {/*...*/}
/** @param {Error} e*/ try { throw new Error(); } catch (e) {/*...*/}
但没有成功。 e 始终键入 any。什么会起作用
try { throw new Error(); } catch (_e) {
/** @type {Error} */
var e = _e;
// ...
}
额外的变量会被闭包编译器的高级模式优化掉,但我发现从性能的角度来看(在开发版本中)很麻烦而且不是最优的,希望有更好的方法(即我没有的方法)必须创建一个人工变量来注释正确的类型)。
【问题讨论】:
标签: javascript typescript google-closure-compiler jsdoc