typescript 4.8.0-dev.20220617 → 4.8.0-dev.20220620
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cs/diagnosticMessages.generated.json +5 -1
- package/lib/de/diagnosticMessages.generated.json +10 -1
- package/lib/es/diagnosticMessages.generated.json +10 -1
- package/lib/fr/diagnosticMessages.generated.json +5 -1
- package/lib/it/diagnosticMessages.generated.json +10 -1
- package/lib/ja/diagnosticMessages.generated.json +5 -1
- package/lib/ko/diagnosticMessages.generated.json +10 -1
- package/lib/lib.dom.d.ts +128 -183
- package/lib/lib.dom.iterable.d.ts +1 -11
- package/lib/lib.webworker.d.ts +54 -27
- package/lib/lib.webworker.iterable.d.ts +1 -1
- package/lib/pl/diagnosticMessages.generated.json +5 -1
- package/lib/protocol.d.ts +1 -0
- package/lib/pt-br/diagnosticMessages.generated.json +5 -1
- package/lib/ru/diagnosticMessages.generated.json +10 -1
- package/lib/tr/diagnosticMessages.generated.json +10 -1
- package/lib/tsc.js +69 -35
- package/lib/tsserver.js +115 -51
- package/lib/tsserverlibrary.d.ts +2 -0
- package/lib/tsserverlibrary.js +115 -51
- package/lib/typescript.d.ts +1 -0
- package/lib/typescript.js +115 -51
- package/lib/typescriptServices.d.ts +1 -0
- package/lib/typescriptServices.js +115 -51
- package/lib/typingsInstaller.js +90 -35
- package/lib/zh-cn/diagnosticMessages.generated.json +5 -1
- package/lib/zh-tw/diagnosticMessages.generated.json +5 -1
- package/package.json +3 -2
package/lib/typingsInstaller.js
CHANGED
|
@@ -89,7 +89,7 @@ var ts;
|
|
|
89
89
|
// The following is baselined as a literal template type without intervention
|
|
90
90
|
/** The version of the TypeScript compiler release */
|
|
91
91
|
// eslint-disable-next-line @typescript-eslint/no-inferrable-types
|
|
92
|
-
ts.version = ts.versionMajorMinor + ".0-dev.
|
|
92
|
+
ts.version = ts.versionMajorMinor + ".0-dev.20220620";
|
|
93
93
|
/* @internal */
|
|
94
94
|
var Comparison;
|
|
95
95
|
(function (Comparison) {
|
|
@@ -9924,6 +9924,9 @@ var ts;
|
|
|
9924
9924
|
For_await_loops_cannot_be_used_inside_a_class_static_block: diag(18038, ts.DiagnosticCategory.Error, "For_await_loops_cannot_be_used_inside_a_class_static_block_18038", "'For await' loops cannot be used inside a class static block."),
|
|
9925
9925
|
Invalid_use_of_0_It_cannot_be_used_inside_a_class_static_block: diag(18039, ts.DiagnosticCategory.Error, "Invalid_use_of_0_It_cannot_be_used_inside_a_class_static_block_18039", "Invalid use of '{0}'. It cannot be used inside a class static block."),
|
|
9926
9926
|
A_return_statement_cannot_be_used_inside_a_class_static_block: diag(18041, ts.DiagnosticCategory.Error, "A_return_statement_cannot_be_used_inside_a_class_static_block_18041", "A 'return' statement cannot be used inside a class static block."),
|
|
9927
|
+
_0_is_a_type_and_cannot_be_imported_in_JavaScript_files_Use_1_in_a_JSDoc_type_annotation: diag(18042, ts.DiagnosticCategory.Error, "_0_is_a_type_and_cannot_be_imported_in_JavaScript_files_Use_1_in_a_JSDoc_type_annotation_18042", "'{0}' is a type and cannot be imported in JavaScript files. Use '{1}' in a JSDoc type annotation."),
|
|
9928
|
+
Types_cannot_appear_in_export_declarations_in_JavaScript_files: diag(18043, ts.DiagnosticCategory.Error, "Types_cannot_appear_in_export_declarations_in_JavaScript_files_18043", "Types cannot appear in export declarations in JavaScript files."),
|
|
9929
|
+
_0_is_automatically_exported_here: diag(18044, ts.DiagnosticCategory.Message, "_0_is_automatically_exported_here_18044", "'{0}' is automatically exported here."),
|
|
9927
9930
|
};
|
|
9928
9931
|
})(ts || (ts = {}));
|
|
9929
9932
|
var ts;
|
|
@@ -34512,10 +34515,10 @@ var ts;
|
|
|
34512
34515
|
setDecoratorContext(/*val*/ false);
|
|
34513
34516
|
}
|
|
34514
34517
|
var pos = getNodePos();
|
|
34515
|
-
var expr = parseAssignmentExpressionOrHigher();
|
|
34518
|
+
var expr = parseAssignmentExpressionOrHigher(/*allowReturnTypeInArrowFunction*/ true);
|
|
34516
34519
|
var operatorToken;
|
|
34517
34520
|
while ((operatorToken = parseOptionalToken(27 /* CommaToken */))) {
|
|
34518
|
-
expr = makeBinaryExpression(expr, operatorToken, parseAssignmentExpressionOrHigher(), pos);
|
|
34521
|
+
expr = makeBinaryExpression(expr, operatorToken, parseAssignmentExpressionOrHigher(/*allowReturnTypeInArrowFunction*/ true), pos);
|
|
34519
34522
|
}
|
|
34520
34523
|
if (saveDecoratorContext) {
|
|
34521
34524
|
setDecoratorContext(/*val*/ true);
|
|
@@ -34523,9 +34526,9 @@ var ts;
|
|
|
34523
34526
|
return expr;
|
|
34524
34527
|
}
|
|
34525
34528
|
function parseInitializer() {
|
|
34526
|
-
return parseOptional(63 /* EqualsToken */) ? parseAssignmentExpressionOrHigher() : undefined;
|
|
34529
|
+
return parseOptional(63 /* EqualsToken */) ? parseAssignmentExpressionOrHigher(/*allowReturnTypeInArrowFunction*/ true) : undefined;
|
|
34527
34530
|
}
|
|
34528
|
-
function parseAssignmentExpressionOrHigher() {
|
|
34531
|
+
function parseAssignmentExpressionOrHigher(allowReturnTypeInArrowFunction) {
|
|
34529
34532
|
// AssignmentExpression[in,yield]:
|
|
34530
34533
|
// 1) ConditionalExpression[?in,?yield]
|
|
34531
34534
|
// 2) LeftHandSideExpression = AssignmentExpression[?in,?yield]
|
|
@@ -34551,7 +34554,7 @@ var ts;
|
|
|
34551
34554
|
// If we do successfully parse arrow-function, we must *not* recurse for productions 1, 2 or 3. An ArrowFunction is
|
|
34552
34555
|
// not a LeftHandSideExpression, nor does it start a ConditionalExpression. So we are done
|
|
34553
34556
|
// with AssignmentExpression if we see one.
|
|
34554
|
-
var arrowExpression = tryParseParenthesizedArrowFunctionExpression() || tryParseAsyncSimpleArrowFunctionExpression();
|
|
34557
|
+
var arrowExpression = tryParseParenthesizedArrowFunctionExpression(allowReturnTypeInArrowFunction) || tryParseAsyncSimpleArrowFunctionExpression(allowReturnTypeInArrowFunction);
|
|
34555
34558
|
if (arrowExpression) {
|
|
34556
34559
|
return arrowExpression;
|
|
34557
34560
|
}
|
|
@@ -34570,7 +34573,7 @@ var ts;
|
|
|
34570
34573
|
// parameter ('x => ...') above. We handle it here by checking if the parsed expression was a single
|
|
34571
34574
|
// identifier and the current token is an arrow.
|
|
34572
34575
|
if (expr.kind === 79 /* Identifier */ && token() === 38 /* EqualsGreaterThanToken */) {
|
|
34573
|
-
return parseSimpleArrowFunctionExpression(pos, expr, /*asyncModifier*/ undefined);
|
|
34576
|
+
return parseSimpleArrowFunctionExpression(pos, expr, allowReturnTypeInArrowFunction, /*asyncModifier*/ undefined);
|
|
34574
34577
|
}
|
|
34575
34578
|
// Now see if we might be in cases '2' or '3'.
|
|
34576
34579
|
// If the expression was a LHS expression, and we have an assignment operator, then
|
|
@@ -34579,10 +34582,10 @@ var ts;
|
|
|
34579
34582
|
// Note: we call reScanGreaterToken so that we get an appropriately merged token
|
|
34580
34583
|
// for cases like `> > =` becoming `>>=`
|
|
34581
34584
|
if (ts.isLeftHandSideExpression(expr) && ts.isAssignmentOperator(reScanGreaterToken())) {
|
|
34582
|
-
return makeBinaryExpression(expr, parseTokenNode(), parseAssignmentExpressionOrHigher(), pos);
|
|
34585
|
+
return makeBinaryExpression(expr, parseTokenNode(), parseAssignmentExpressionOrHigher(allowReturnTypeInArrowFunction), pos);
|
|
34583
34586
|
}
|
|
34584
34587
|
// It wasn't an assignment or a lambda. This is a conditional expression:
|
|
34585
|
-
return parseConditionalExpressionRest(expr, pos);
|
|
34588
|
+
return parseConditionalExpressionRest(expr, pos, allowReturnTypeInArrowFunction);
|
|
34586
34589
|
}
|
|
34587
34590
|
function isYieldExpression() {
|
|
34588
34591
|
if (token() === 125 /* YieldKeyword */) {
|
|
@@ -34622,7 +34625,7 @@ var ts;
|
|
|
34622
34625
|
nextToken();
|
|
34623
34626
|
if (!scanner.hasPrecedingLineBreak() &&
|
|
34624
34627
|
(token() === 41 /* AsteriskToken */ || isStartOfExpression())) {
|
|
34625
|
-
return finishNode(factory.createYieldExpression(parseOptionalToken(41 /* AsteriskToken */), parseAssignmentExpressionOrHigher()), pos);
|
|
34628
|
+
return finishNode(factory.createYieldExpression(parseOptionalToken(41 /* AsteriskToken */), parseAssignmentExpressionOrHigher(/*allowReturnTypeInArrowFunction*/ true)), pos);
|
|
34626
34629
|
}
|
|
34627
34630
|
else {
|
|
34628
34631
|
// if the next token is not on the same line as yield. or we don't have an '*' or
|
|
@@ -34630,7 +34633,7 @@ var ts;
|
|
|
34630
34633
|
return finishNode(factory.createYieldExpression(/*asteriskToken*/ undefined, /*expression*/ undefined), pos);
|
|
34631
34634
|
}
|
|
34632
34635
|
}
|
|
34633
|
-
function parseSimpleArrowFunctionExpression(pos, identifier, asyncModifier) {
|
|
34636
|
+
function parseSimpleArrowFunctionExpression(pos, identifier, allowReturnTypeInArrowFunction, asyncModifier) {
|
|
34634
34637
|
ts.Debug.assert(token() === 38 /* EqualsGreaterThanToken */, "parseSimpleArrowFunctionExpression should only have been called if we had a =>");
|
|
34635
34638
|
var parameter = factory.createParameterDeclaration(
|
|
34636
34639
|
/*modifiers*/ undefined,
|
|
@@ -34641,11 +34644,11 @@ var ts;
|
|
|
34641
34644
|
finishNode(parameter, identifier.pos);
|
|
34642
34645
|
var parameters = createNodeArray([parameter], parameter.pos, parameter.end);
|
|
34643
34646
|
var equalsGreaterThanToken = parseExpectedToken(38 /* EqualsGreaterThanToken */);
|
|
34644
|
-
var body = parseArrowFunctionExpressionBody(/*isAsync*/ !!asyncModifier);
|
|
34647
|
+
var body = parseArrowFunctionExpressionBody(/*isAsync*/ !!asyncModifier, allowReturnTypeInArrowFunction);
|
|
34645
34648
|
var node = factory.createArrowFunction(asyncModifier, /*typeParameters*/ undefined, parameters, /*type*/ undefined, equalsGreaterThanToken, body);
|
|
34646
34649
|
return addJSDocComment(finishNode(node, pos));
|
|
34647
34650
|
}
|
|
34648
|
-
function tryParseParenthesizedArrowFunctionExpression() {
|
|
34651
|
+
function tryParseParenthesizedArrowFunctionExpression(allowReturnTypeInArrowFunction) {
|
|
34649
34652
|
var triState = isParenthesizedArrowFunctionExpression();
|
|
34650
34653
|
if (triState === 0 /* False */) {
|
|
34651
34654
|
// It's definitely not a parenthesized arrow function expression.
|
|
@@ -34656,8 +34659,8 @@ var ts;
|
|
|
34656
34659
|
// it out, but don't allow any ambiguity, and return 'undefined' if this could be an
|
|
34657
34660
|
// expression instead.
|
|
34658
34661
|
return triState === 1 /* True */ ?
|
|
34659
|
-
parseParenthesizedArrowFunctionExpression(/*allowAmbiguity*/ true) :
|
|
34660
|
-
tryParse(parsePossibleParenthesizedArrowFunctionExpression);
|
|
34662
|
+
parseParenthesizedArrowFunctionExpression(/*allowAmbiguity*/ true, /*allowReturnTypeInArrowFunction*/ true) :
|
|
34663
|
+
tryParse(function () { return parsePossibleParenthesizedArrowFunctionExpression(allowReturnTypeInArrowFunction); });
|
|
34661
34664
|
}
|
|
34662
34665
|
// True -> We definitely expect a parenthesized arrow function here.
|
|
34663
34666
|
// False -> There *cannot* be a parenthesized arrow function here.
|
|
@@ -34791,25 +34794,25 @@ var ts;
|
|
|
34791
34794
|
return 2 /* Unknown */;
|
|
34792
34795
|
}
|
|
34793
34796
|
}
|
|
34794
|
-
function parsePossibleParenthesizedArrowFunctionExpression() {
|
|
34797
|
+
function parsePossibleParenthesizedArrowFunctionExpression(allowReturnTypeInArrowFunction) {
|
|
34795
34798
|
var tokenPos = scanner.getTokenPos();
|
|
34796
34799
|
if (notParenthesizedArrow === null || notParenthesizedArrow === void 0 ? void 0 : notParenthesizedArrow.has(tokenPos)) {
|
|
34797
34800
|
return undefined;
|
|
34798
34801
|
}
|
|
34799
|
-
var result = parseParenthesizedArrowFunctionExpression(/*allowAmbiguity*/ false);
|
|
34802
|
+
var result = parseParenthesizedArrowFunctionExpression(/*allowAmbiguity*/ false, allowReturnTypeInArrowFunction);
|
|
34800
34803
|
if (!result) {
|
|
34801
34804
|
(notParenthesizedArrow || (notParenthesizedArrow = new ts.Set())).add(tokenPos);
|
|
34802
34805
|
}
|
|
34803
34806
|
return result;
|
|
34804
34807
|
}
|
|
34805
|
-
function tryParseAsyncSimpleArrowFunctionExpression() {
|
|
34808
|
+
function tryParseAsyncSimpleArrowFunctionExpression(allowReturnTypeInArrowFunction) {
|
|
34806
34809
|
// We do a check here so that we won't be doing unnecessarily call to "lookAhead"
|
|
34807
34810
|
if (token() === 131 /* AsyncKeyword */) {
|
|
34808
34811
|
if (lookAhead(isUnParenthesizedAsyncArrowFunctionWorker) === 1 /* True */) {
|
|
34809
34812
|
var pos = getNodePos();
|
|
34810
34813
|
var asyncModifier = parseModifiersForArrowFunction();
|
|
34811
34814
|
var expr = parseBinaryExpressionOrHigher(0 /* Lowest */);
|
|
34812
|
-
return parseSimpleArrowFunctionExpression(pos, expr, asyncModifier);
|
|
34815
|
+
return parseSimpleArrowFunctionExpression(pos, expr, allowReturnTypeInArrowFunction, asyncModifier);
|
|
34813
34816
|
}
|
|
34814
34817
|
}
|
|
34815
34818
|
return undefined;
|
|
@@ -34833,7 +34836,7 @@ var ts;
|
|
|
34833
34836
|
}
|
|
34834
34837
|
return 0 /* False */;
|
|
34835
34838
|
}
|
|
34836
|
-
function parseParenthesizedArrowFunctionExpression(allowAmbiguity) {
|
|
34839
|
+
function parseParenthesizedArrowFunctionExpression(allowAmbiguity, allowReturnTypeInArrowFunction) {
|
|
34837
34840
|
var pos = getNodePos();
|
|
34838
34841
|
var hasJSDoc = hasPrecedingJSDocComment();
|
|
34839
34842
|
var modifiers = parseModifiersForArrowFunction();
|
|
@@ -34868,6 +34871,7 @@ var ts;
|
|
|
34868
34871
|
return undefined;
|
|
34869
34872
|
}
|
|
34870
34873
|
}
|
|
34874
|
+
var hasReturnColon = token() === 58 /* ColonToken */;
|
|
34871
34875
|
var type = parseReturnType(58 /* ColonToken */, /*isType*/ false);
|
|
34872
34876
|
if (type && !allowAmbiguity && typeHasArrowFunctionBlockingParseError(type)) {
|
|
34873
34877
|
return undefined;
|
|
@@ -34896,12 +34900,37 @@ var ts;
|
|
|
34896
34900
|
var lastToken = token();
|
|
34897
34901
|
var equalsGreaterThanToken = parseExpectedToken(38 /* EqualsGreaterThanToken */);
|
|
34898
34902
|
var body = (lastToken === 38 /* EqualsGreaterThanToken */ || lastToken === 18 /* OpenBraceToken */)
|
|
34899
|
-
? parseArrowFunctionExpressionBody(ts.some(modifiers, ts.isAsyncModifier))
|
|
34903
|
+
? parseArrowFunctionExpressionBody(ts.some(modifiers, ts.isAsyncModifier), allowReturnTypeInArrowFunction)
|
|
34900
34904
|
: parseIdentifier();
|
|
34905
|
+
// Given:
|
|
34906
|
+
// x ? y => ({ y }) : z => ({ z })
|
|
34907
|
+
// We try to parse the body of the first arrow function by looking at:
|
|
34908
|
+
// ({ y }) : z => ({ z })
|
|
34909
|
+
// This is a valid arrow function with "z" as the return type.
|
|
34910
|
+
//
|
|
34911
|
+
// But, if we're in the true side of a conditional expression, this colon
|
|
34912
|
+
// terminates the expression, so we cannot allow a return type if we aren't
|
|
34913
|
+
// certain whether or not the preceding text was parsed as a parameter list.
|
|
34914
|
+
//
|
|
34915
|
+
// For example,
|
|
34916
|
+
// a() ? (b: number, c?: string): void => d() : e
|
|
34917
|
+
// is determined by isParenthesizedArrowFunctionExpression to unambiguously
|
|
34918
|
+
// be an arrow expression, so we allow a return type.
|
|
34919
|
+
if (!allowReturnTypeInArrowFunction && hasReturnColon) {
|
|
34920
|
+
// However, if the arrow function we were able to parse is followed by another colon
|
|
34921
|
+
// as in:
|
|
34922
|
+
// a ? (x): string => x : null
|
|
34923
|
+
// Then allow the arrow function, and treat the second colon as terminating
|
|
34924
|
+
// the conditional expression. It's okay to do this because this code would
|
|
34925
|
+
// be a syntax error in JavaScript (as the second colon shouldn't be there).
|
|
34926
|
+
if (token() !== 58 /* ColonToken */) {
|
|
34927
|
+
return undefined;
|
|
34928
|
+
}
|
|
34929
|
+
}
|
|
34901
34930
|
var node = factory.createArrowFunction(modifiers, typeParameters, parameters, type, equalsGreaterThanToken, body);
|
|
34902
34931
|
return withJSDoc(finishNode(node, pos), hasJSDoc);
|
|
34903
34932
|
}
|
|
34904
|
-
function parseArrowFunctionExpressionBody(isAsync) {
|
|
34933
|
+
function parseArrowFunctionExpressionBody(isAsync, allowReturnTypeInArrowFunction) {
|
|
34905
34934
|
if (token() === 18 /* OpenBraceToken */) {
|
|
34906
34935
|
return parseFunctionBlock(isAsync ? 2 /* Await */ : 0 /* None */);
|
|
34907
34936
|
}
|
|
@@ -34929,12 +34958,12 @@ var ts;
|
|
|
34929
34958
|
var savedTopLevel = topLevel;
|
|
34930
34959
|
topLevel = false;
|
|
34931
34960
|
var node = isAsync
|
|
34932
|
-
? doInAwaitContext(parseAssignmentExpressionOrHigher)
|
|
34933
|
-
: doOutsideOfAwaitContext(parseAssignmentExpressionOrHigher);
|
|
34961
|
+
? doInAwaitContext(function () { return parseAssignmentExpressionOrHigher(allowReturnTypeInArrowFunction); })
|
|
34962
|
+
: doOutsideOfAwaitContext(function () { return parseAssignmentExpressionOrHigher(allowReturnTypeInArrowFunction); });
|
|
34934
34963
|
topLevel = savedTopLevel;
|
|
34935
34964
|
return node;
|
|
34936
34965
|
}
|
|
34937
|
-
function parseConditionalExpressionRest(leftOperand, pos) {
|
|
34966
|
+
function parseConditionalExpressionRest(leftOperand, pos, allowReturnTypeInArrowFunction) {
|
|
34938
34967
|
// Note: we are passed in an expression which was produced from parseBinaryExpressionOrHigher.
|
|
34939
34968
|
var questionToken = parseOptionalToken(57 /* QuestionToken */);
|
|
34940
34969
|
if (!questionToken) {
|
|
@@ -34943,8 +34972,8 @@ var ts;
|
|
|
34943
34972
|
// Note: we explicitly 'allowIn' in the whenTrue part of the condition expression, and
|
|
34944
34973
|
// we do not that for the 'whenFalse' part.
|
|
34945
34974
|
var colonToken;
|
|
34946
|
-
return finishNode(factory.createConditionalExpression(leftOperand, questionToken, doOutsideOfContext(disallowInAndDecoratorContext, parseAssignmentExpressionOrHigher), colonToken = parseExpectedToken(58 /* ColonToken */), ts.nodeIsPresent(colonToken)
|
|
34947
|
-
? parseAssignmentExpressionOrHigher()
|
|
34975
|
+
return finishNode(factory.createConditionalExpression(leftOperand, questionToken, doOutsideOfContext(disallowInAndDecoratorContext, function () { return parseAssignmentExpressionOrHigher(/*allowReturnTypeInArrowFunction*/ false); }), colonToken = parseExpectedToken(58 /* ColonToken */), ts.nodeIsPresent(colonToken)
|
|
34976
|
+
? parseAssignmentExpressionOrHigher(allowReturnTypeInArrowFunction)
|
|
34948
34977
|
: createMissingNode(79 /* Identifier */, /*reportAtCurrentPosition*/ false, ts.Diagnostics._0_expected, ts.tokenToString(58 /* ColonToken */))), pos);
|
|
34949
34978
|
}
|
|
34950
34979
|
function parseBinaryExpressionOrHigher(precedence) {
|
|
@@ -35859,13 +35888,13 @@ var ts;
|
|
|
35859
35888
|
function parseSpreadElement() {
|
|
35860
35889
|
var pos = getNodePos();
|
|
35861
35890
|
parseExpected(25 /* DotDotDotToken */);
|
|
35862
|
-
var expression = parseAssignmentExpressionOrHigher();
|
|
35891
|
+
var expression = parseAssignmentExpressionOrHigher(/*allowReturnTypeInArrowFunction*/ true);
|
|
35863
35892
|
return finishNode(factory.createSpreadElement(expression), pos);
|
|
35864
35893
|
}
|
|
35865
35894
|
function parseArgumentOrArrayLiteralElement() {
|
|
35866
35895
|
return token() === 25 /* DotDotDotToken */ ? parseSpreadElement() :
|
|
35867
35896
|
token() === 27 /* CommaToken */ ? finishNode(factory.createOmittedExpression(), getNodePos()) :
|
|
35868
|
-
parseAssignmentExpressionOrHigher();
|
|
35897
|
+
parseAssignmentExpressionOrHigher(/*allowReturnTypeInArrowFunction*/ true);
|
|
35869
35898
|
}
|
|
35870
35899
|
function parseArgumentExpression() {
|
|
35871
35900
|
return doOutsideOfContext(disallowInAndDecoratorContext, parseArgumentOrArrayLiteralElement);
|
|
@@ -35883,7 +35912,7 @@ var ts;
|
|
|
35883
35912
|
var pos = getNodePos();
|
|
35884
35913
|
var hasJSDoc = hasPrecedingJSDocComment();
|
|
35885
35914
|
if (parseOptionalToken(25 /* DotDotDotToken */)) {
|
|
35886
|
-
var expression = parseAssignmentExpressionOrHigher();
|
|
35915
|
+
var expression = parseAssignmentExpressionOrHigher(/*allowReturnTypeInArrowFunction*/ true);
|
|
35887
35916
|
return withJSDoc(finishNode(factory.createSpreadAssignment(expression), pos), hasJSDoc);
|
|
35888
35917
|
}
|
|
35889
35918
|
var decorators = parseDecorators();
|
|
@@ -35912,7 +35941,7 @@ var ts;
|
|
|
35912
35941
|
var isShorthandPropertyAssignment = tokenIsIdentifier && (token() !== 58 /* ColonToken */);
|
|
35913
35942
|
if (isShorthandPropertyAssignment) {
|
|
35914
35943
|
var equalsToken = parseOptionalToken(63 /* EqualsToken */);
|
|
35915
|
-
var objectAssignmentInitializer = equalsToken ? allowInAnd(parseAssignmentExpressionOrHigher) : undefined;
|
|
35944
|
+
var objectAssignmentInitializer = equalsToken ? allowInAnd(function () { return parseAssignmentExpressionOrHigher(/*allowReturnTypeInArrowFunction*/ true); }) : undefined;
|
|
35916
35945
|
node = factory.createShorthandPropertyAssignment(name, objectAssignmentInitializer);
|
|
35917
35946
|
// Save equals token for error reporting.
|
|
35918
35947
|
// TODO(rbuckton): Consider manufacturing this when we need to report an error as it is otherwise not useful.
|
|
@@ -35920,7 +35949,7 @@ var ts;
|
|
|
35920
35949
|
}
|
|
35921
35950
|
else {
|
|
35922
35951
|
parseExpected(58 /* ColonToken */);
|
|
35923
|
-
var initializer = allowInAnd(parseAssignmentExpressionOrHigher);
|
|
35952
|
+
var initializer = allowInAnd(function () { return parseAssignmentExpressionOrHigher(/*allowReturnTypeInArrowFunction*/ true); });
|
|
35924
35953
|
node = factory.createPropertyAssignment(name, initializer);
|
|
35925
35954
|
}
|
|
35926
35955
|
// Decorators, Modifiers, questionToken, and exclamationToken are not supported by property assignments and are reported in the grammar checker
|
|
@@ -36097,7 +36126,7 @@ var ts;
|
|
|
36097
36126
|
}
|
|
36098
36127
|
var node;
|
|
36099
36128
|
if (awaitToken ? parseExpected(160 /* OfKeyword */) : parseOptional(160 /* OfKeyword */)) {
|
|
36100
|
-
var expression = allowInAnd(parseAssignmentExpressionOrHigher);
|
|
36129
|
+
var expression = allowInAnd(function () { return parseAssignmentExpressionOrHigher(/*allowReturnTypeInArrowFunction*/ true); });
|
|
36101
36130
|
parseExpected(21 /* CloseParenToken */);
|
|
36102
36131
|
node = factory.createForOfStatement(awaitToken, initializer, expression, parseStatement());
|
|
36103
36132
|
}
|
|
@@ -37285,7 +37314,7 @@ var ts;
|
|
|
37285
37314
|
var pos = getNodePos();
|
|
37286
37315
|
var name = ts.tokenIsIdentifierOrKeyword(token()) ? parseIdentifierName() : parseLiteralLikeNode(10 /* StringLiteral */);
|
|
37287
37316
|
parseExpected(58 /* ColonToken */);
|
|
37288
|
-
var value = parseAssignmentExpressionOrHigher();
|
|
37317
|
+
var value = parseAssignmentExpressionOrHigher(/*allowReturnTypeInArrowFunction*/ true);
|
|
37289
37318
|
return finishNode(factory.createAssertEntry(name, value), pos);
|
|
37290
37319
|
}
|
|
37291
37320
|
function parseAssertClause(skipAssertKeyword) {
|
|
@@ -37526,7 +37555,7 @@ var ts;
|
|
|
37526
37555
|
else {
|
|
37527
37556
|
parseExpected(88 /* DefaultKeyword */);
|
|
37528
37557
|
}
|
|
37529
|
-
var expression = parseAssignmentExpressionOrHigher();
|
|
37558
|
+
var expression = parseAssignmentExpressionOrHigher(/*allowReturnTypeInArrowFunction*/ true);
|
|
37530
37559
|
parseSemicolon();
|
|
37531
37560
|
setAwaitContext(savedAwaitContext);
|
|
37532
37561
|
var node = factory.createExportAssignment(modifiers, isExportEquals, expression);
|
|
@@ -85652,6 +85681,7 @@ var ts;
|
|
|
85652
85681
|
return true;
|
|
85653
85682
|
}
|
|
85654
85683
|
function checkAliasSymbol(node) {
|
|
85684
|
+
var _a, _b, _c, _d, _e;
|
|
85655
85685
|
var symbol = getSymbolOfNode(node);
|
|
85656
85686
|
var target = resolveAlias(symbol);
|
|
85657
85687
|
if (target !== unknownSymbol) {
|
|
@@ -85662,6 +85692,31 @@ var ts;
|
|
|
85662
85692
|
// otherwise it will conflict with some local declaration). Note that in addition to normal flags we include matching SymbolFlags.Export*
|
|
85663
85693
|
// in order to prevent collisions with declarations that were exported from the current module (they still contribute to local names).
|
|
85664
85694
|
symbol = getMergedSymbol(symbol.exportSymbol || symbol);
|
|
85695
|
+
// A type-only import/export will already have a grammar error in a JS file, so no need to issue more errors within
|
|
85696
|
+
if (ts.isInJSFile(node) && !(target.flags & 111551 /* Value */) && !ts.isTypeOnlyImportOrExportDeclaration(node)) {
|
|
85697
|
+
var errorNode = ts.isImportOrExportSpecifier(node) ? node.propertyName || node.name :
|
|
85698
|
+
ts.isNamedDeclaration(node) ? node.name :
|
|
85699
|
+
node;
|
|
85700
|
+
ts.Debug.assert(node.kind !== 274 /* NamespaceExport */);
|
|
85701
|
+
if (node.kind === 275 /* ExportSpecifier */) {
|
|
85702
|
+
var diag = error(errorNode, ts.Diagnostics.Types_cannot_appear_in_export_declarations_in_JavaScript_files);
|
|
85703
|
+
var alreadyExportedSymbol = (_b = (_a = ts.getSourceFileOfNode(node).symbol) === null || _a === void 0 ? void 0 : _a.exports) === null || _b === void 0 ? void 0 : _b.get((node.propertyName || node.name).escapedText);
|
|
85704
|
+
if (alreadyExportedSymbol === target) {
|
|
85705
|
+
var exportingDeclaration = (_c = alreadyExportedSymbol.declarations) === null || _c === void 0 ? void 0 : _c.find(ts.isJSDocNode);
|
|
85706
|
+
if (exportingDeclaration) {
|
|
85707
|
+
ts.addRelatedInfo(diag, ts.createDiagnosticForNode(exportingDeclaration, ts.Diagnostics._0_is_automatically_exported_here, ts.unescapeLeadingUnderscores(alreadyExportedSymbol.escapedName)));
|
|
85708
|
+
}
|
|
85709
|
+
}
|
|
85710
|
+
}
|
|
85711
|
+
else {
|
|
85712
|
+
ts.Debug.assert(node.kind !== 254 /* VariableDeclaration */);
|
|
85713
|
+
var importDeclaration = ts.findAncestor(node, ts.or(ts.isImportDeclaration, ts.isImportEqualsDeclaration));
|
|
85714
|
+
var moduleSpecifier = (_e = (importDeclaration && ((_d = ts.tryGetModuleSpecifierFromDeclaration(importDeclaration)) === null || _d === void 0 ? void 0 : _d.text))) !== null && _e !== void 0 ? _e : "...";
|
|
85715
|
+
var importedIdentifier = ts.unescapeLeadingUnderscores(ts.isIdentifier(errorNode) ? errorNode.escapedText : symbol.escapedName);
|
|
85716
|
+
error(errorNode, ts.Diagnostics._0_is_a_type_and_cannot_be_imported_in_JavaScript_files_Use_1_in_a_JSDoc_type_annotation, importedIdentifier, "import(\"" + moduleSpecifier + "\")." + importedIdentifier);
|
|
85717
|
+
}
|
|
85718
|
+
return;
|
|
85719
|
+
}
|
|
85665
85720
|
var excludedMeanings = (symbol.flags & (111551 /* Value */ | 1048576 /* ExportValue */) ? 111551 /* Value */ : 0) |
|
|
85666
85721
|
(symbol.flags & 788968 /* Type */ ? 788968 /* Type */ : 0) |
|
|
85667
85722
|
(symbol.flags & 1920 /* Namespace */ ? 1920 /* Namespace */ : 0);
|
|
@@ -132,6 +132,8 @@
|
|
|
132
132
|
"Add_definite_assignment_assertion_to_property_0_95020": "向属性“{0}”添加明确的赋值断言",
|
|
133
133
|
"Add_definite_assignment_assertions_to_all_uninitialized_properties_95028": "将明确赋值断言添加到未初始化的所有属性",
|
|
134
134
|
"Add_export_to_make_this_file_into_a_module_95097": "添加 \"export {}\",将此文件变为模块",
|
|
135
|
+
"Add_extends_constraint_2211": "添加 `extends` 约束。",
|
|
136
|
+
"Add_extends_constraint_to_all_type_parameters_2212": "将 `extends` 约束添加到所有类型参数",
|
|
135
137
|
"Add_import_from_0_90057": "从“{0}”添加导入",
|
|
136
138
|
"Add_index_signature_for_property_0_90017": "为属性“{0}”添加索引签名",
|
|
137
139
|
"Add_initializer_to_property_0_95019": "向属性“{0}”添加初始值设定项",
|
|
@@ -1493,7 +1495,7 @@
|
|
|
1493
1495
|
"This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found_2354": "此语法需要一个导入的帮助程序,但找不到模块“{0}”。",
|
|
1494
1496
|
"This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_ve_2343": "此语法需要名为 \"{1}\" 的导入帮助器,\"{0}\" 中不存在该帮助器。请考虑升级 \"{0}\" 的版本。",
|
|
1495
1497
|
"This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_o_2807": "此语法需要一个名为 \"{1}\" 且包含 {2} 参数的导入帮助程序,该帮助程序与 \"{0}\" 中的相应帮助程序不兼容。请考虑升级 \"{0}\" 的版本。",
|
|
1496
|
-
"
|
|
1498
|
+
"This_type_parameter_might_need_an_extends_0_constraint_2208": "此类型参数可能需要 `extends {0}` 约束。",
|
|
1497
1499
|
"This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot__1326": "“import” 的这种用法无效。可以写入 “import()” 调用,但它们必须具有括号,并且不能带有类型参数。",
|
|
1498
1500
|
"Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_n_1378": "仅当 “module” 选项设置为 “es2022”、“esnext”、“system”、“node16” 或 “nodenext”,且 “target” 选项设置为 “es2017” 或更高版本时,才允许使用顶级 “await” 表达式。",
|
|
1499
1501
|
"Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier_1046": ".d.ts 文件中的顶级声明必须以 \"declare\" 或 \"export\" 修饰符开头。",
|
|
@@ -1651,6 +1653,7 @@
|
|
|
1651
1653
|
"Watch_and_Build_Modes_6250": "观看和生成模式",
|
|
1652
1654
|
"Watch_input_files_6005": "监视输入文件。",
|
|
1653
1655
|
"Watch_option_0_requires_a_value_of_type_1_5080": "观察选项 \"{0}\" 需要 {1} 类型的值。",
|
|
1656
|
+
"We_can_only_write_a_type_for_0_by_adding_a_type_for_the_entire_parameter_here_2843": "我们只能通过在此处为整个参数添加类型来写入“{0}”的类型。",
|
|
1654
1657
|
"When_assigning_functions_check_to_ensure_parameters_and_the_return_values_are_subtype_compatible_6698": "分配函数时,请检查以确保参数和返回值与子类型兼容。",
|
|
1655
1658
|
"When_type_checking_take_into_account_null_and_undefined_6699": "进行类型检查时,请考虑 “null” 和 “undefined”。",
|
|
1656
1659
|
"Whether_to_keep_outdated_console_output_in_watch_mode_instead_of_clearing_the_screen_6191": "是否在监视模式下保留过时的控制台输出,而不是清除屏幕。",
|
|
@@ -1690,6 +1693,7 @@
|
|
|
1690
1693
|
"_0_index_type_1_is_not_assignable_to_2_index_type_3_2413": "“{0}”索引类型“{1}”不能分配给“{2}”索引类型“{3}”。",
|
|
1691
1694
|
"_0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible_2692": "“{0}”是基元,但“{1}”是包装器对象。如可能首选使用“{0}”。",
|
|
1692
1695
|
"_0_is_a_type_and_must_be_imported_using_a_type_only_import_when_preserveValueImports_and_isolatedMod_1444": "\"{0}\" 是一种类型,在同时启用了 \"preserveValueImports\" 和 \"isolatedModules\" 时,必须使用仅类型导入进行导入。",
|
|
1696
|
+
"_0_is_an_unused_renaming_of_1_Did_you_intend_to_use_it_as_a_type_annotation_2842": "“{0}”是“{1}”的未使用重命名。是否打算将其用作类型批注?",
|
|
1693
1697
|
"_0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_5075": "\"{0}\" 可赋给 \"{1}\" 类型的约束,但可以使用约束 \"{2}\" 的其他子类型实例化 \"{1}\"。",
|
|
1694
1698
|
"_0_is_declared_but_its_value_is_never_read_6133": "已声明“{0}”,但从未读取其值。",
|
|
1695
1699
|
"_0_is_declared_but_never_used_6196": "“{0}”已声明,但从未使用过。",
|
|
@@ -132,6 +132,8 @@
|
|
|
132
132
|
"Add_definite_assignment_assertion_to_property_0_95020": "將明確指派判斷提示新增至屬性 '{0}'",
|
|
133
133
|
"Add_definite_assignment_assertions_to_all_uninitialized_properties_95028": "為所有未初始化的屬性新增明確的指派判斷提示",
|
|
134
134
|
"Add_export_to_make_this_file_into_a_module_95097": "新增 'export {}' 以將此檔案轉為模組",
|
|
135
|
+
"Add_extends_constraint_2211": "新增 'extends' 限制式。",
|
|
136
|
+
"Add_extends_constraint_to_all_type_parameters_2212": "將 'extends' 限制式新增至所有類型參數",
|
|
135
137
|
"Add_import_from_0_90057": "從 \"{0}\" 新增匯入",
|
|
136
138
|
"Add_index_signature_for_property_0_90017": "為屬性 '{0}' 新增索引簽章",
|
|
137
139
|
"Add_initializer_to_property_0_95019": "將初始設定式新增至屬性 '{0}'",
|
|
@@ -1493,7 +1495,7 @@
|
|
|
1493
1495
|
"This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found_2354": "此語法需要已匯入的協助程式,但找不到模組 '{0}'。",
|
|
1494
1496
|
"This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_ve_2343": "此語法需要名為 '{1}' 的已匯入協助程式,但其不存在於 '{0}' 中。請考慮升級您的 '{0}' 版本。",
|
|
1495
1497
|
"This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_o_2807": "此語法需要名為 '{1}' 且具有 {2} 參數的匯入協助程式,其與 '{0}' 中的參數不相容。請考慮升級 '{0}' 的版本。",
|
|
1496
|
-
"
|
|
1498
|
+
"This_type_parameter_might_need_an_extends_0_constraint_2208": "此類型參數可能需要 'extends {0}' 限制式。",
|
|
1497
1499
|
"This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot__1326": "此 'import' 的使用方式無效。'import()' 呼叫可以寫入,但必須有括弧,而且不能有類型引數。",
|
|
1498
1500
|
"Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_n_1378": "只有在 'module' 選項設定為 'es2022'、'esnext'、'system'、'node16' 或 'nodenext',而且 'target' 選項設定為 'es2017' 或更高版本時,才允許最上層的 'await' 運算式。",
|
|
1499
1501
|
"Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier_1046": ".d.ts 檔案中的最上層宣告必須以 'declare' 或 'export' 修飾元開頭。",
|
|
@@ -1651,6 +1653,7 @@
|
|
|
1651
1653
|
"Watch_and_Build_Modes_6250": "觀看及建置模式",
|
|
1652
1654
|
"Watch_input_files_6005": "監看輸入檔。",
|
|
1653
1655
|
"Watch_option_0_requires_a_value_of_type_1_5080": "監看選項 '{0}' 需要 {1} 類型的值。",
|
|
1656
|
+
"We_can_only_write_a_type_for_0_by_adding_a_type_for_the_entire_parameter_here_2843": "我們只能在此新增整個參數的類型,來寫入 '{0}' 的類型。",
|
|
1654
1657
|
"When_assigning_functions_check_to_ensure_parameters_and_the_return_values_are_subtype_compatible_6698": "指派函式時,請檢查以確認參數,而且傳回值是子類型相容的。",
|
|
1655
1658
|
"When_type_checking_take_into_account_null_and_undefined_6699": "當型別檢查時,請將 'null' 和 'undefined' 納入考慮。",
|
|
1656
1659
|
"Whether_to_keep_outdated_console_output_in_watch_mode_instead_of_clearing_the_screen_6191": "是否要將已過期的主控台輸出,維持在監看模式下,而非清除螢幕。",
|
|
@@ -1690,6 +1693,7 @@
|
|
|
1690
1693
|
"_0_index_type_1_is_not_assignable_to_2_index_type_3_2413": "'{0}' 索引類型 '{1}' 無法指派給 '{2}' 索引類型 '{3}'。",
|
|
1691
1694
|
"_0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible_2692": "'{0}' 為基元,但 '{1}' 為包裝函式物件。建議盡可能使用 '{0}'。",
|
|
1692
1695
|
"_0_is_a_type_and_must_be_imported_using_a_type_only_import_when_preserveValueImports_and_isolatedMod_1444": "'{0}' 是類型,而且當 'preserveValueImports' 和 'isolatedModules' 都啟用時,必須使用僅類型匯入來匯入。",
|
|
1696
|
+
"_0_is_an_unused_renaming_of_1_Did_you_intend_to_use_it_as_a_type_annotation_2842": "'{0}' 是未使用的 '{1}' 重新命名。您是否想要使用它作為類型註釋?",
|
|
1693
1697
|
"_0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_5075": "'{0}' 可指派給 '{1}' 類型的條件約束,但可能會將 '{1}' 以不同的條件約束 '{2}' 子類型來具現化。",
|
|
1694
1698
|
"_0_is_declared_but_its_value_is_never_read_6133": "'{0}' 已宣告但從未讀取其值。",
|
|
1695
1699
|
"_0_is_declared_but_never_used_6196": "宣告了 '{0}',但從未使用過。",
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "typescript",
|
|
3
3
|
"author": "Microsoft Corp.",
|
|
4
4
|
"homepage": "https://www.typescriptlang.org/",
|
|
5
|
-
"version": "4.8.0-dev.
|
|
5
|
+
"version": "4.8.0-dev.20220620",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"description": "TypeScript is a language for application scale JavaScript development",
|
|
8
8
|
"keywords": [
|
|
@@ -48,6 +48,7 @@
|
|
|
48
48
|
"@types/mocha": "latest",
|
|
49
49
|
"@types/ms": "latest",
|
|
50
50
|
"@types/node": "latest",
|
|
51
|
+
"@types/node-fetch": "^2.6.2",
|
|
51
52
|
"@types/q": "latest",
|
|
52
53
|
"@types/source-map-support": "latest",
|
|
53
54
|
"@types/xml2js": "^0.4.11",
|
|
@@ -81,7 +82,7 @@
|
|
|
81
82
|
"mocha": "latest",
|
|
82
83
|
"mocha-fivemat-progress-reporter": "latest",
|
|
83
84
|
"ms": "^2.1.3",
|
|
84
|
-
"node-fetch": "^
|
|
85
|
+
"node-fetch": "^2.6.7",
|
|
85
86
|
"prex": "^0.4.7",
|
|
86
87
|
"q": "latest",
|
|
87
88
|
"source-map-support": "latest",
|