我正在VS2017 15.9上使用打字稿3.1构建节点模块。以下代码段无法编译:
export class
t_Foo
{
public
Bar(/* no arguments accepted */) /* no value returned */
{
/* no op */
return;
}
}; // t_Foo
此代码是否有问题?出于某种原因,似乎public
访问说明符被视为类成员。
答案 0 :(得分:1)
问题在于Typescirpt将public Bar() {...}
的定义解释为public; Bar() {...}
。
这是因为换行符。像javascript一样,Typescript不会强迫您使用;
。不幸的是,这会导致歧义,而您只是碰到其中之一。
您得到的错误是由于这样的事实,因为TS认为您的定义为public; Bar() {...}
,所以public
将是一个没有类型注释(因此会出现错误)和{{1} }将是一个公共方法(因为默认修饰符在打字稿中是公共的)。