Microsoft/TypeScript

Missing error if ClassDeclaration is used in Statement position

Open

#22,682 建立於 2018年3月18日

在 GitHub 查看
 (4 留言) (0 反應) (0 負責人)TypeScript (6,726 fork)batch import
BugDomain: ParserEffort: CasualHelp Wanted

倉庫指標

Star
 (48,455 star)
PR 合併指標
 (平均合併 6天 17小時) (30 天內合併 9 個 PR)

描述

TypeScript Version: 2.8.0-dev.20180318

Search Terms: class statement

Code

let codition = false as boolean;

if (condition)
    class C {} // runtime error if transpiled to ES2015 or above: Unexpected token class
if (condition)
    enum E { Foo } // should probably be an error?

new C(); // runtime error if transpiled to ES5, because 'C' is undefined
E.Foo; // runtime error: cannot read property 'Foo' of 'E'

Expected behavior:

Expected a compile error on class C and maybe on enum E

Actual behavior: no error for these declarations, instead I get a runtime error when targeting ES2015 or above.

Playground Link:

Related Issues:

貢獻者指南