我有一个类,它有一个成员public offerTags: [ 'Array' ].<ITag>;,上面的一行是抛出错误Unexpected token. A constructor, method, accessor, or property was expected.ts(1068)和Expected '=' for property initializer.ts(1442)。这段代码是由protobufjs模型自动生成的。编辑器无法理解上述格式。是否有一个特定的TS设置或版本,我应该做,这样我就不会得到上述错误?
interface ITag {
/** Tag namespace */
namespace?: (string|null);
/** Tag name */
name?: (string|null);
}
class Offer {
/** Offer id. */
public id?: string;
/** Offer name. */
public name?: string;
/** Offer offerTags. */
public offerTags: [ 'Array' ].<ITag>;
/** Offer validityInterval. */
public validityInterval?: (IAbsoluteTimeInterval|null);
}在提供的上述类定义中,public offerTags: [ 'Array' ].<ITag>;为属性initializer.ts(1442)和意外令牌抛出了预期的'=‘错误。构造函数、方法、访问器或属性为expected.ts(1068)。
在我看来,offerTags属性的语法看起来很奇怪,理想情况下,数组将声明为public offerTags: ITag[]。由于上述问题,我无法访问offerTags属性之后声明的属性,例如validityInrerval。
发布于 2022-03-22 09:19:48
这似乎是protobufjs中的一个bug,还有人在这里报告了同样的问题:生成的.d.ts语法错误#1306
基于线程,它似乎与JSDoc < 3.6.1有关。当前的protobfjs版本(6.10.2)依赖于JSDoc 3.6.3,因此我认为它应该可以很好地处理最新版本。
为了进一步分析,您必须发布一个可复制的小样本。
https://stackoverflow.com/questions/71534331
复制相似问题