访问说明符触发错误TS7008:Build:Member“ public”隐式具有“ any”类型

时间:2018-12-10 16:17:14

标签: typescript

我正在VS2017 15.9上使用打字稿3.1构建节点模块。以下代码段无法编译:

export class
t_Foo
{
    public
    Bar(/* no arguments accepted */) /* no value returned */
    {
        /* no op */
        return;
    }
}; // t_Foo

此代码是否有问题?出于某种原因,似乎public访问说明符被视为类成员。

1 个答案:

答案 0 :(得分:1)

问题在于Typescirpt将public Bar() {...}的定义解释为public; Bar() {...}

这是因为换行符。像javascript一样,Typescript不会强迫您使用;。不幸的是,这会导致歧义,而您只是碰到其中之一。

您得到的错误是由于这样的事实,因为TS认为您的定义为public; Bar() {...},所以public将是一个没有类型注释(因此会出现错误)和{{1} }将是一个公共方法(因为默认修饰符在打字稿中是公共的)。