我把这段代码放在一个外部文件中:
/** @typedef {{english: string, spanish: string}} */
var SpanishNoun;
然后我有JavaScript:
/**
* @param {SpanishNoun} n
*/
exp1.processData3 = function (n) {
console.log("pd3:", n.english, n.spanish, n['english'], n['spanish']);
}
编译后的结果是:
function(a){console.log("pd3:",a.a,a.c,a.english,a.spanish)};
那么它仍然将'english'重命名为'a'等。你如何阻止它?为什么它认为可以重命名"extern"的东西。
Rob
后续问题
John的答案引发了另一个问题:我能告诉Closure编译器,仅针对特定类型停止重命名属性吗?