我有这样的打字稿文件......
var obj = {
/** Test comment */
prop1: '',
prop2: ''
};
javascript编译为......
var obj = {
prop1: /** Test comment */
'',
prop2: ''
};
这个问题是JSDoc在生成文档时没有看到对象的属性,因为注释位于属性之后。
我的解决方案是......
var obj;
obj = {};
/** Test comment */
obj.prop1 = '';
obj.prop2 = '';
出于某些原因,在这种情况下,我必须将声明与初始化分开,否则类型脚本会在obj.propX = '';
行上引发错误
属性'propX'在类型'{}'
的值上不存在
我的问题:
答案 0 :(得分:6)
这是一个错误。在将来的TypeScript版本中,将正确保留注释。
与此同时,对于解决方法,您有两种选择:
无论
var obj: any = {}; // No type checking, anywhere, on obj
或者
var obj: { prop1: string; prop2: string; } = {}; // More work, but type checking will happen now
之后你可以这样做,它应该按预期工作:
/** Test comment */
obj.prop1 = '';