diff --git a/src/harness/fourslashInterfaceImpl.ts b/src/harness/fourslashInterfaceImpl.ts index 096b1ea8e8d..fc3dce9e1ff 100644 --- a/src/harness/fourslashInterfaceImpl.ts +++ b/src/harness/fourslashInterfaceImpl.ts @@ -1370,6 +1370,7 @@ namespace FourSlashInterface { "let", "package", "yield", + "as", "async", "await", ].map(keywordEntry); @@ -1510,6 +1511,7 @@ namespace FourSlashInterface { "let", "package", "yield", + "as", "async", "await", ].map(keywordEntry); diff --git a/src/services/completions.ts b/src/services/completions.ts index 1c9b10096a6..b7ac7e26925 100644 --- a/src/services/completions.ts +++ b/src/services/completions.ts @@ -2585,7 +2585,6 @@ namespace ts.Completions { || kind === SyntaxKind.ModuleKeyword || kind === SyntaxKind.TypeKeyword || kind === SyntaxKind.NamespaceKeyword - || kind === SyntaxKind.AsKeyword || isTypeKeyword(kind) && kind !== SyntaxKind.UndefinedKeyword; case KeywordCompletionFilters.FunctionLikeBodyKeywords: return isFunctionLikeBodyKeyword(kind); @@ -2660,6 +2659,7 @@ namespace ts.Completions { function isFunctionLikeBodyKeyword(kind: SyntaxKind) { return kind === SyntaxKind.AsyncKeyword || kind === SyntaxKind.AwaitKeyword + || kind === SyntaxKind.AsKeyword || !isContextualKeyword(kind) && !isClassMemberCompletionKeyword(kind); } diff --git a/tests/cases/fourslash/completionAsKeyword.ts b/tests/cases/fourslash/completionAsKeyword.ts new file mode 100644 index 00000000000..08e3f0d7c0e --- /dev/null +++ b/tests/cases/fourslash/completionAsKeyword.ts @@ -0,0 +1,11 @@ +/// + +////const x = this /*1*/ +////function foo() { +//// const x = this /*2*/ +////} + +verify.completions({ + marker: ["1", "2"], + includes: [{ name: "as", sortText: completion.SortText.GlobalsOrKeywords }] +});