Skip to content

Commit 85e1b19

Browse files
authored
chore: bump typescript dependency to 3.8 (typescript-eslint#1696)
This is the first step in implementing the 3.8 features. I wanted to keep each PR small and focused, so this is the minimum required work to get the build passing with 3.8 installed.
1 parent bc2a9d6 commit 85e1b19

File tree

10 files changed

+46
-7
lines changed

10 files changed

+46
-7
lines changed

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,9 @@
7474
"ts-jest": "^25.0.0",
7575
"ts-node": "^8.5.0",
7676
"tslint": "^5.20.1",
77-
"typescript": ">=3.2.1 <3.8.0"
77+
"typescript": ">=3.2.1 <3.9.0"
7878
},
7979
"resolutions": {
80-
"typescript": "^3.7.2"
80+
"typescript": "^3.8.3"
8181
}
8282
}

packages/parser/tests/lib/__snapshots__/jsx.ts.snap

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -651,6 +651,8 @@ Object {
651651
}
652652
`;
653653
654+
exports[`JSX useJSXTextNode: false fixtures/member-expression-private.src 1`] = `"Identifier expected."`;
655+
654656
exports[`JSX useJSXTextNode: false fixtures/member-expression-this.src 1`] = `
655657
Object {
656658
"$id": 1,

packages/parser/tests/lib/__snapshots__/tsx.ts.snap

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ Object {
5050
}
5151
`;
5252

53+
exports[`TSX fixtures/generic-jsx-member-expression-private.src 1`] = `"Identifier expected."`;
54+
5355
exports[`TSX fixtures/generic-jsx-opening-element.src 1`] = `
5456
Object {
5557
"$id": 1,
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<this.#foo/>;
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
const foo = <this.#foo<string>/>

packages/typescript-estree/src/convert.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -458,6 +458,12 @@ export class Converter {
458458
let result: TSESTree.JSXMemberExpression | TSESTree.JSXIdentifier;
459459
switch (node.kind) {
460460
case SyntaxKind.PropertyAccessExpression:
461+
if (node.name.kind === SyntaxKind.PrivateIdentifier) {
462+
// This is one of the few times where TS explicitly errors, and doesn't even gracefully handle the syntax.
463+
// So we shouldn't ever get into this state to begin with.
464+
throw new Error('Non-private identifier expected.');
465+
}
466+
461467
result = this.createNode<TSESTree.JSXMemberExpression>(node, {
462468
type: AST_NODE_TYPES.JSXMemberExpression,
463469
object: this.convertJSXTagName(node.expression, parent),
@@ -467,12 +473,14 @@ export class Converter {
467473
) as TSESTree.JSXIdentifier,
468474
});
469475
break;
476+
470477
case SyntaxKind.ThisKeyword:
471478
result = this.createNode<TSESTree.JSXIdentifier>(node, {
472479
type: AST_NODE_TYPES.JSXIdentifier,
473480
name: 'this',
474481
});
475482
break;
483+
476484
case SyntaxKind.Identifier:
477485
default:
478486
result = this.createNode<TSESTree.JSXIdentifier>(node, {
@@ -1570,6 +1578,9 @@ export class Converter {
15701578

15711579
case SyntaxKind.ExportDeclaration:
15721580
if (node.exportClause) {
1581+
if (node.exportClause.kind !== SyntaxKind.NamedExports) {
1582+
throw new Error('`export * as ns` is not yet supported.');
1583+
}
15731584
return this.createNode<TSESTree.ExportNamedDeclaration>(node, {
15741585
type: AST_NODE_TYPES.ExportNamedDeclaration,
15751586
source: this.convertChild(node.moduleSpecifier),

packages/typescript-estree/tests/lib/__snapshots__/jsx.ts.snap

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5289,6 +5289,8 @@ Object {
52895289
}
52905290
`;
52915291
5292+
exports[`JSX useJSXTextNode: false fixtures/member-expression-private.src 1`] = `"Identifier expected."`;
5293+
52925294
exports[`JSX useJSXTextNode: false fixtures/member-expression-this.src 1`] = `
52935295
Object {
52945296
"body": Array [

packages/typescript-estree/tests/lib/__snapshots__/semantic-diagnostics-enabled.ts.snap

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1555,6 +1555,15 @@ exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" e
15551555

15561556
exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/jsx/member-expression.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`;
15571557

1558+
exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/jsx/member-expression-private.src 1`] = `
1559+
Object {
1560+
"column": 10,
1561+
"index": 10,
1562+
"lineNumber": 1,
1563+
"message": "Identifier expected.",
1564+
}
1565+
`;
1566+
15581567
exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/jsx/member-expression-this.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`;
15591568

15601569
exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/jsx/multiple-blank-spaces.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`;
@@ -1627,6 +1636,15 @@ exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" e
16271636

16281637
exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/tsx/generic-jsx-element.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`;
16291638

1639+
exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/tsx/generic-jsx-member-expression-private.src 1`] = `
1640+
Object {
1641+
"column": 22,
1642+
"index": 22,
1643+
"lineNumber": 1,
1644+
"message": "Identifier expected.",
1645+
}
1646+
`;
1647+
16301648
exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/tsx/generic-jsx-opening-element.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`;
16311649

16321650
exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/tsx/react-typed-props.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`;
@@ -1689,7 +1707,7 @@ Object {
16891707
"column": 14,
16901708
"index": 31,
16911709
"lineNumber": 2,
1692-
"message": "'await' expression is only allowed within an async function.",
1710+
"message": "'await' expressions are only allowed within async functions and at the top levels of modules.",
16931711
}
16941712
`;
16951713

packages/typescript-estree/tests/lib/__snapshots__/tsx.ts.snap

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -422,6 +422,8 @@ Object {
422422
}
423423
`;
424424

425+
exports[`TSX fixtures/generic-jsx-member-expression-private.src 1`] = `"Identifier expected."`;
426+
425427
exports[`TSX fixtures/generic-jsx-opening-element.src 1`] = `
426428
Object {
427429
"body": Array [

yarn.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8152,10 +8152,10 @@ typedarray@^0.0.6:
81528152
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
81538153
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
81548154

8155-
typescript@*, "typescript@>=3.2.1 <3.8.0", typescript@^3.7.2:
8156-
version "3.7.5"
8157-
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.7.5.tgz#0692e21f65fd4108b9330238aac11dd2e177a1ae"
8158-
integrity sha512-/P5lkRXkWHNAbcJIiHPfRoKqyd7bsyCma1hZNUGfn20qm64T6ZBlrzprymeu918H+mB/0rIg2gGK/BXkhhYgBw==
8155+
typescript@*, "typescript@>=3.2.1 <3.9.0", typescript@^3.8.3:
8156+
version "3.8.3"
8157+
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.3.tgz#409eb8544ea0335711205869ec458ab109ee1061"
8158+
integrity sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==
81598159

81608160
uglify-js@^3.1.4:
81618161
version "3.6.0"

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy