Skip to content

Commit dea8e3e

Browse files
committed
Merge pull request microsoft#3207 from Microsoft/declareModifierForInterface
Declare modifier for interface
2 parents 5bea6a9 + 2191adc commit dea8e3e

8 files changed

Lines changed: 39 additions & 11 deletions

src/compiler/checker.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12361,9 +12361,6 @@ module ts {
1236112361
else if ((node.kind === SyntaxKind.ImportDeclaration || node.kind === SyntaxKind.ImportEqualsDeclaration) && flags & NodeFlags.Ambient) {
1236212362
return grammarErrorOnNode(lastDeclare, Diagnostics.A_declare_modifier_cannot_be_used_with_an_import_declaration, "declare");
1236312363
}
12364-
else if (node.kind === SyntaxKind.InterfaceDeclaration && flags & NodeFlags.Ambient) {
12365-
return grammarErrorOnNode(lastDeclare, Diagnostics.A_declare_modifier_cannot_be_used_with_an_interface_declaration, "declare");
12366-
}
1236712364
else if (node.kind === SyntaxKind.Parameter && (flags & NodeFlags.AccessibilityModifier) && isBindingPattern((<ParameterDeclaration>node).name)) {
1236812365
return grammarErrorOnNode(node, Diagnostics.A_parameter_property_may_not_be_a_binding_pattern);
1236912366
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
//// [declareModifierOnTypeAlias.ts]
2+
declare type Foo = string;
3+
type Bar = number;
4+
declare type Baz = Bar;
5+
6+
//// [declareModifierOnTypeAlias.js]
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
=== tests/cases/compiler/declareModifierOnTypeAlias.ts ===
2+
declare type Foo = string;
3+
>Foo : Symbol(Foo, Decl(declareModifierOnTypeAlias.ts, 0, 0))
4+
5+
type Bar = number;
6+
>Bar : Symbol(Bar, Decl(declareModifierOnTypeAlias.ts, 0, 26))
7+
8+
declare type Baz = Bar;
9+
>Baz : Symbol(Baz, Decl(declareModifierOnTypeAlias.ts, 1, 18))
10+
>Bar : Symbol(Bar, Decl(declareModifierOnTypeAlias.ts, 0, 26))
11+
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
=== tests/cases/compiler/declareModifierOnTypeAlias.ts ===
2+
declare type Foo = string;
3+
>Foo : string
4+
5+
type Bar = number;
6+
>Bar : number
7+
8+
declare type Baz = Bar;
9+
>Baz : number
10+
>Bar : number
11+

tests/baselines/reference/parserInterfaceDeclaration5.errors.txt

Lines changed: 0 additions & 8 deletions
This file was deleted.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
=== tests/cases/conformance/parser/ecmascript5/InterfaceDeclarations/parserInterfaceDeclaration5.ts ===
2+
declare interface I {
3+
>I : Symbol(I, Decl(parserInterfaceDeclaration5.ts, 0, 0))
4+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
=== tests/cases/conformance/parser/ecmascript5/InterfaceDeclarations/parserInterfaceDeclaration5.ts ===
2+
declare interface I {
3+
>I : I
4+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
declare type Foo = string;
2+
type Bar = number;
3+
declare type Baz = Bar;

0 commit comments

Comments
 (0)