Merge branch 'master' of https://github.com/Microsoft/TypeScript into feature/eslint

This commit is contained in:
Alexander T
2019-08-29 09:35:19 +03:00
33 changed files with 645 additions and 323 deletions
+1 -1
View File
@@ -3519,7 +3519,7 @@ namespace ts {
const sig = nodeBuilder.signatureToSignatureDeclaration(signature, sigOutput, enclosingDeclaration, toNodeBuilderFlags(flags) | NodeBuilderFlags.IgnoreErrors | NodeBuilderFlags.WriteTypeParametersInQualifiedName);
const printer = createPrinter({ removeComments: true, omitTrailingSemicolon: true });
const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration);
printer.writeNode(EmitHint.Unspecified, sig!, /*sourceFile*/ sourceFile, getTrailingSemicolonOmittingWriter(writer)); // TODO: GH#18217
printer.writeNode(EmitHint.Unspecified, sig!, /*sourceFile*/ sourceFile, getTrailingSemicolonDeferringWriter(writer)); // TODO: GH#18217
return writer;
}
}
+4
View File
@@ -5120,6 +5120,10 @@
"category": "Message",
"code": 95089
},
"Extract to interface": {
"category": "Message",
"code": 95090
},
"No value exists in scope for the shorthand property '{0}'. Either declare one or provide an initializer.": {
"category": "Error",
+2 -2
View File
@@ -1053,7 +1053,7 @@ namespace ts {
function setWriter(_writer: EmitTextWriter | undefined, _sourceMapGenerator: SourceMapGenerator | undefined) {
if (_writer && printerOptions.omitTrailingSemicolon) {
_writer = getTrailingSemicolonOmittingWriter(_writer);
_writer = getTrailingSemicolonDeferringWriter(_writer);
}
writer = _writer!; // TODO: GH#18217
@@ -2510,7 +2510,7 @@ namespace ts {
}
emitWhileClause(node, node.statement.end);
writePunctuation(";");
writeTrailingSemicolon();
}
function emitWhileStatement(node: WhileStatement) {
+19 -1
View File
@@ -3378,7 +3378,11 @@ namespace ts {
};
}
export function getTrailingSemicolonOmittingWriter(writer: EmitTextWriter): EmitTextWriter {
export interface TrailingSemicolonDeferringWriter extends EmitTextWriter {
resetPendingTrailingSemicolon(): void;
}
export function getTrailingSemicolonDeferringWriter(writer: EmitTextWriter): TrailingSemicolonDeferringWriter {
let pendingTrailingSemicolon = false;
function commitPendingTrailingSemicolon() {
@@ -3444,10 +3448,24 @@ namespace ts {
decreaseIndent() {
commitPendingTrailingSemicolon();
writer.decreaseIndent();
},
resetPendingTrailingSemicolon() {
pendingTrailingSemicolon = false;
}
};
}
export function getTrailingSemicolonOmittingWriter(writer: EmitTextWriter): EmitTextWriter {
const deferringWriter = getTrailingSemicolonDeferringWriter(writer);
return {
...deferringWriter,
writeLine() {
deferringWriter.resetPendingTrailingSemicolon();
writer.writeLine();
},
};
}
export function getResolvedExternalModuleName(host: EmitHost, file: SourceFile, referenceFile?: SourceFile): string {
return file.moduleName || getExternalModuleNameFromPath(host, file.fileName, referenceFile && referenceFile.fileName);
}
+77 -12
View File
@@ -2,6 +2,7 @@
namespace ts.refactor {
const refactorName = "Extract type";
const extractToTypeAlias = "Extract to type alias";
const extractToInterface = "Extract to interface";
const extractToTypeDef = "Extract to typedef";
registerRefactor(refactorName, {
getAvailableActions(context): readonly ApplicableRefactorInfo[] {
@@ -11,23 +12,35 @@ namespace ts.refactor {
return [{
name: refactorName,
description: getLocaleSpecificMessage(Diagnostics.Extract_type),
actions: [info.isJS ? {
actions: info.isJS ? [{
name: extractToTypeDef, description: getLocaleSpecificMessage(Diagnostics.Extract_to_typedef)
} : {
}] : append([{
name: extractToTypeAlias, description: getLocaleSpecificMessage(Diagnostics.Extract_to_type_alias)
}]
}], info.typeElements && {
name: extractToInterface, description: getLocaleSpecificMessage(Diagnostics.Extract_to_interface)
})
}];
},
getEditsForAction(context, actionName): RefactorEditInfo {
Debug.assert(actionName === extractToTypeAlias || actionName === extractToTypeDef, "Unexpected action name");
const { file } = context;
const info = Debug.assertDefined(getRangeToExtract(context), "Expected to find a range to extract");
Debug.assert(actionName === extractToTypeAlias && !info.isJS || actionName === extractToTypeDef && info.isJS, "Invalid actionName/JS combo");
const name = getUniqueName("NewType", file);
const edits = textChanges.ChangeTracker.with(context, changes => info.isJS ?
doTypedefChange(changes, file, name, info.firstStatement, info.selection, info.typeParameters) :
doTypeAliasChange(changes, file, name, info.firstStatement, info.selection, info.typeParameters));
const edits = textChanges.ChangeTracker.with(context, changes => {
switch (actionName) {
case extractToTypeAlias:
Debug.assert(!info.isJS, "Invalid actionName/JS combo");
return doTypeAliasChange(changes, file, name, info);
case extractToTypeDef:
Debug.assert(info.isJS, "Invalid actionName/JS combo");
return doTypedefChange(changes, file, name, info);
case extractToInterface:
Debug.assert(!info.isJS && !!info.typeElements, "Invalid actionName/JS combo");
return doInterfaceChange(changes, file, name, info as InterfaceInfo);
default:
Debug.fail("Unexpected action name");
}
});
const renameFilename = file.fileName;
const renameLocation = getRenameLocation(edits, renameFilename, name, /*preferLastLocation*/ false);
@@ -35,7 +48,15 @@ namespace ts.refactor {
}
});
interface Info { isJS: boolean; selection: TypeNode; firstStatement: Statement; typeParameters: readonly TypeParameterDeclaration[]; }
interface TypeAliasInfo {
isJS: boolean; selection: TypeNode; firstStatement: Statement; typeParameters: readonly TypeParameterDeclaration[]; typeElements?: readonly TypeElement[];
}
interface InterfaceInfo {
isJS: boolean; selection: TypeNode; firstStatement: Statement; typeParameters: readonly TypeParameterDeclaration[]; typeElements: readonly TypeElement[];
}
type Info = TypeAliasInfo | InterfaceInfo;
function getRangeToExtract(context: RefactorContext): Info | undefined {
const { file, startPosition } = context;
@@ -51,7 +72,32 @@ namespace ts.refactor {
const typeParameters = collectTypeParameters(checker, selection, firstStatement, file);
if (!typeParameters) return undefined;
return { isJS, selection, firstStatement, typeParameters };
const typeElements = flattenTypeLiteralNodeReference(checker, selection);
return { isJS, selection, firstStatement, typeParameters, typeElements };
}
function flattenTypeLiteralNodeReference(checker: TypeChecker, node: TypeNode | undefined): readonly TypeElement[] | undefined {
if (!node) return undefined;
if (isIntersectionTypeNode(node)) {
const result: TypeElement[] = [];
const seen = createMap<true>();
for (const type of node.types) {
const flattenedTypeMembers = flattenTypeLiteralNodeReference(checker, type);
if (!flattenedTypeMembers || !flattenedTypeMembers.every(type => type.name && addToSeen(seen, getNameFromPropertyName(type.name) as string))) {
return undefined;
}
addRange(result, flattenedTypeMembers);
}
return result;
}
else if (isParenthesizedTypeNode(node)) {
return flattenTypeLiteralNodeReference(checker, node.type);
}
else if (isTypeLiteralNode(node)) {
return node.members;
}
return undefined;
}
function isStatementAndHasJSDoc(n: Node): n is (Statement & HasJSDoc) {
@@ -107,7 +153,9 @@ namespace ts.refactor {
}
}
function doTypeAliasChange(changes: textChanges.ChangeTracker, file: SourceFile, name: string, firstStatement: Statement, selection: TypeNode, typeParameters: readonly TypeParameterDeclaration[]) {
function doTypeAliasChange(changes: textChanges.ChangeTracker, file: SourceFile, name: string, info: TypeAliasInfo) {
const { firstStatement, selection, typeParameters } = info;
const newTypeNode = createTypeAliasDeclaration(
/* decorators */ undefined,
/* modifiers */ undefined,
@@ -119,7 +167,24 @@ namespace ts.refactor {
changes.replaceNode(file, selection, createTypeReferenceNode(name, typeParameters.map(id => createTypeReferenceNode(id.name, /* typeArguments */ undefined))));
}
function doTypedefChange(changes: textChanges.ChangeTracker, file: SourceFile, name: string, firstStatement: Statement, selection: TypeNode, typeParameters: readonly TypeParameterDeclaration[]) {
function doInterfaceChange(changes: textChanges.ChangeTracker, file: SourceFile, name: string, info: InterfaceInfo) {
const { firstStatement, selection, typeParameters, typeElements } = info;
const newTypeNode = createInterfaceDeclaration(
/* decorators */ undefined,
/* modifiers */ undefined,
name,
typeParameters,
/* heritageClauses */ undefined,
typeElements
);
changes.insertNodeBefore(file, firstStatement, newTypeNode, /* blankLineBetween */ true);
changes.replaceNode(file, selection, createTypeReferenceNode(name, typeParameters.map(id => createTypeReferenceNode(id.name, /* typeArguments */ undefined))));
}
function doTypedefChange(changes: textChanges.ChangeTracker, file: SourceFile, name: string, info: Info) {
const { firstStatement, selection, typeParameters } = info;
const node = <JSDocTypedefTag>createNode(SyntaxKind.JSDocTypedefTag);
node.tagName = createIdentifier("typedef"); // TODO: jsdoc factory https://github.com/Microsoft/TypeScript/pull/29539
node.fullName = createIdentifier(name);
+1 -1
View File
@@ -854,7 +854,7 @@ namespace ts.textChanges {
const omitTrailingSemicolon = !!sourceFile && !probablyUsesSemicolons(sourceFile);
const writer = createWriter(newLineCharacter, omitTrailingSemicolon);
const newLine = newLineCharacter === "\n" ? NewLineKind.LineFeed : NewLineKind.CarriageReturnLineFeed;
createPrinter({ newLine, neverAsciiEscape: true, omitTrailingSemicolon }, writer).writeNode(EmitHint.Unspecified, node, sourceFile, writer);
createPrinter({ newLine, neverAsciiEscape: true }, writer).writeNode(EmitHint.Unspecified, node, sourceFile, writer);
return { text: writer.getText(), node: assignPositionsToNode(node) };
}
}
+80 -3
View File
@@ -2,7 +2,7 @@ Exit Code: 1
Standard output:
Rush Multi-Project Build Tool 5.X.X - https://rushjs.io
Node.js version is 12.8.1 (pre-LTS)
Node.js version is 12.9.0 (pre-LTS)
Starting "rush rebuild"
Executing a maximum of ?simultaneous processes...
XX of XX: [@azure/abort-controller] completed successfully in ? seconds
@@ -28,10 +28,45 @@ npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/XXXX-XX-XXXXXXXXX-debug.log
ERROR: "build:lib" exited with 1.
XX of XX: [@azure/event-processor-host] completed successfully in ? seconds
XX of XX: [@azure/test-utils-recorder] completed successfully in ? seconds
XX of XX: [@azure/core-asynciterator-polyfill] completed successfully in ? seconds
XX of XX: [@azure/core-paging] completed successfully in ? seconds
XX of XX: [@azure/core-tracing] completed successfully in ? seconds
XX of XX: [@azure/service-bus] completed successfully in ? seconds
Warning: You have changed the public API signature for this project. Updating review/cosmos.api.md
dist-esm/index.js → dist/index.js...
(!) Unresolved dependencies
https://rollupjs.org/guide/en/#warning-treating-module-as-external-dependency
tslib (imported by dist-esm/queryIterator.js, dist-esm/auth.js, dist-esm/CosmosClient.js, dist-esm/plugins/Plugin.js, dist-esm/ClientContext.js, dist-esm/globalEndpointManager.js, dist-esm/client/Conflict/Conflict.js, dist-esm/client/Container/Container.js, dist-esm/client/Container/Containers.js, dist-esm/client/Database/Database.js, dist-esm/client/Database/Databases.js, dist-esm/client/Item/Item.js, dist-esm/client/Item/Items.js, dist-esm/client/Offer/Offer.js, dist-esm/client/Permission/Permission.js, dist-esm/client/Permission/Permissions.js, dist-esm/client/StoredProcedure/StoredProcedure.js, dist-esm/client/StoredProcedure/StoredProcedures.js, dist-esm/client/Trigger/Trigger.js, dist-esm/client/Trigger/Triggers.js, dist-esm/client/User/User.js, dist-esm/client/User/Users.js, dist-esm/client/UserDefinedFunction/UserDefinedFunction.js, dist-esm/client/UserDefinedFunction/UserDefinedFunctions.js, dist-esm/queryExecutionContext/defaultQueryExecutionContext.js, dist-esm/queryExecutionContext/documentProducer.js, dist-esm/queryExecutionContext/parallelQueryExecutionContextBase.js, dist-esm/queryExecutionContext/pipelinedQueryExecutionContext.js, dist-esm/request/request.js, dist-esm/request/RequestHandler.js, dist-esm/ChangeFeedIterator.js, dist-esm/routing/smartRoutingMapProvider.js, dist-esm/queryExecutionContext/EndpointComponent/AggregateEndpointComponent.js, dist-esm/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js, dist-esm/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js, dist-esm/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js, dist-esm/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js, dist-esm/retry/retryUtility.js, dist-esm/routing/partitionKeyRangeCache.js, dist-esm/retry/defaultRetryPolicy.js, dist-esm/retry/endpointDiscoveryRetryPolicy.js, dist-esm/retry/resourceThrottleRetryPolicy.js, dist-esm/retry/sessionRetryPolicy.js)
@azure/cosmos-sign (imported by dist-esm/auth.js)
universal-user-agent (imported by dist-esm/common/platform.js)
uuid/v4 (imported by dist-esm/client/Item/Items.js)
binary-search-bounds (imported by dist-esm/queryExecutionContext/parallelQueryExecutionContextBase.js, dist-esm/routing/inMemoryCollectionRoutingMap.js)
priorityqueuejs (imported by dist-esm/queryExecutionContext/parallelQueryExecutionContextBase.js)
semaphore (imported by dist-esm/queryExecutionContext/parallelQueryExecutionContextBase.js)
node-abort-controller (imported by dist-esm/request/RequestHandler.js)
node-fetch (imported by dist-esm/request/RequestHandler.js)
atob (imported by dist-esm/session/sessionContainer.js)
crypto-hash (imported by dist-esm/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js, dist-esm/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js)
fast-json-stable-stringify (imported by dist-esm/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js, dist-esm/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js)
(!) Missing global variable names
Use output.globals to specify browser global variable names corresponding to external modules
universal-user-agent (guessing 'userAgent')
tslib (guessing 'tslib')
@azure/cosmos-sign (guessing 'cosmosSign')
binary-search-bounds (guessing 'bs')
priorityqueuejs (guessing 'PriorityQueue')
semaphore (guessing 'semaphore')
crypto-hash (guessing 'cryptoHash')
fast-json-stable-stringify (guessing 'stableStringify')
uuid/v4 (guessing 'uuid')
node-abort-controller (guessing 'AbortController')
node-fetch (guessing 'fetch')
atob (guessing 'atob')
(!) Circular dependency: dist-esm/queryExecutionContext/index.js -> dist-esm/queryExecutionContext/headerUtils.js -> dist-esm/queryMetrics/index.js -> dist-esm/queryMetrics/clientSideMetrics.js -> dist-esm/queryExecutionContext/index.js
(!) Circular dependency: dist-esm/index.js -> dist-esm/CosmosClient.js -> dist-esm/client/Database/index.js -> dist-esm/client/Database/Database.js -> dist-esm/client/Container/index.js -> dist-esm/client/Container/Container.js -> dist-esm/client/Script/Scripts.js -> dist-esm/index.js
(!) Circular dependency: dist-esm/request/RequestHandler.js -> dist-esm/retry/retryUtility.js -> dist-esm/request/RequestHandler.js
created dist/index.js in ?s
Warning: You have changed the public API signature for this project. Updating review/service-bus.api.md
XX of XX: [@azure/storage-blob] completed successfully in ? seconds
XX of XX: [@azure/storage-file] completed successfully in ? seconds
XX of XX: [@azure/storage-queue] completed successfully in ? seconds
@@ -41,15 +76,55 @@ SUCCESS (11)
@azure/abort-controller (? seconds)
@azure/core-auth (? seconds)
@azure/event-processor-host (? seconds)
@azure/test-utils-recorder (? seconds)
@azure/core-asynciterator-polyfill (? seconds)
@azure/core-paging (? seconds)
@azure/core-tracing (? seconds)
@azure/service-bus (? seconds)
@azure/storage-blob (? seconds)
@azure/storage-file (? seconds)
@azure/storage-queue (? seconds)
testhub (? seconds)
================================
SUCCESS WITH WARNINGS (2)
================================
@azure/cosmos (? seconds)
Warning: You have changed the public API signature for this project. Updating review/cosmos.api.md
dist-esm/index.js → dist/index.js...
(!) Unresolved dependencies
https://rollupjs.org/guide/en/#warning-treating-module-as-external-dependency
tslib (imported by dist-esm/queryIterator.js, dist-esm/auth.js, dist-esm/CosmosClient.js, dist-esm/plugins/Plugin.js, dist-esm/ClientContext.js, dist-esm/globalEndpointManager.js, dist-esm/client/Conflict/Conflict.js, dist-esm/client/Container/Container.js, dist-esm/client/Container/Containers.js, dist-esm/client/Database/Database.js, dist-esm/client/Database/Databases.js, dist-esm/client/Item/Item.js, dist-esm/client/Item/Items.js, dist-esm/client/Offer/Offer.js, dist-esm/client/Permission/Permission.js, dist-esm/client/Permission/Permissions.js, dist-esm/client/StoredProcedure/StoredProcedure.js, dist-esm/client/StoredProcedure/StoredProcedures.js, dist-esm/client/Trigger/Trigger.js, dist-esm/client/Trigger/Triggers.js, dist-esm/client/User/User.js, dist-esm/client/User/Users.js, dist-esm/client/UserDefinedFunction/UserDefinedFunction.js, dist-esm/client/UserDefinedFunction/UserDefinedFunctions.js, dist-esm/queryExecutionContext/defaultQueryExecutionContext.js, dist-esm/queryExecutionContext/documentProducer.js, dist-esm/queryExecutionContext/parallelQueryExecutionContextBase.js, dist-esm/queryExecutionContext/pipelinedQueryExecutionContext.js, dist-esm/request/request.js, dist-esm/request/RequestHandler.js, dist-esm/ChangeFeedIterator.js, dist-esm/routing/smartRoutingMapProvider.js, dist-esm/queryExecutionContext/EndpointComponent/AggregateEndpointComponent.js, dist-esm/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js, dist-esm/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js, dist-esm/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js, dist-esm/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js, dist-esm/retry/retryUtility.js, dist-esm/routing/partitionKeyRangeCache.js, dist-esm/retry/defaultRetryPolicy.js, dist-esm/retry/endpointDiscoveryRetryPolicy.js, dist-esm/retry/resourceThrottleRetryPolicy.js, dist-esm/retry/sessionRetryPolicy.js)
@azure/cosmos-sign (imported by dist-esm/auth.js)
universal-user-agent (imported by dist-esm/common/platform.js)
uuid/v4 (imported by dist-esm/client/Item/Items.js)
binary-search-bounds (imported by dist-esm/queryExecutionContext/parallelQueryExecutionContextBase.js, dist-esm/routing/inMemoryCollectionRoutingMap.js)
priorityqueuejs (imported by dist-esm/queryExecutionContext/parallelQueryExecutionContextBase.js)
semaphore (imported by dist-esm/queryExecutionContext/parallelQueryExecutionContextBase.js)
node-abort-controller (imported by dist-esm/request/RequestHandler.js)
node-fetch (imported by dist-esm/request/RequestHandler.js)
atob (imported by dist-esm/session/sessionContainer.js)
crypto-hash (imported by dist-esm/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js, dist-esm/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js)
fast-json-stable-stringify (imported by dist-esm/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js, dist-esm/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js)
(!) Missing global variable names
Use output.globals to specify browser global variable names corresponding to external modules
universal-user-agent (guessing 'userAgent')
tslib (guessing 'tslib')
@azure/cosmos-sign (guessing 'cosmosSign')
binary-search-bounds (guessing 'bs')
priorityqueuejs (guessing 'PriorityQueue')
semaphore (guessing 'semaphore')
crypto-hash (guessing 'cryptoHash')
fast-json-stable-stringify (guessing 'stableStringify')
uuid/v4 (guessing 'uuid')
node-abort-controller (guessing 'AbortController')
node-fetch (guessing 'fetch')
atob (guessing 'atob')
(!) Circular dependency: dist-esm/queryExecutionContext/index.js -> dist-esm/queryExecutionContext/headerUtils.js -> dist-esm/queryMetrics/index.js -> dist-esm/queryMetrics/clientSideMetrics.js -> dist-esm/queryExecutionContext/index.js
(!) Circular dependency: dist-esm/index.js -> dist-esm/CosmosClient.js -> dist-esm/client/Database/index.js -> dist-esm/client/Database/Database.js -> dist-esm/client/Container/index.js -> dist-esm/client/Container/Container.js -> dist-esm/client/Script/Scripts.js -> dist-esm/index.js
(!) Circular dependency: dist-esm/request/RequestHandler.js -> dist-esm/retry/retryUtility.js -> dist-esm/request/RequestHandler.js
created dist/index.js in ?s
@azure/service-bus (? seconds)
Warning: You have changed the public API signature for this project. Updating review/service-bus.api.md
================================
BLOCKED (8)
================================
@azure/identity
@@ -101,4 +176,6 @@ XX of XX: [@azure/identity] blocked by [@azure/core-http]!
XX of XX: [@azure/core-amqp] blocked by [@azure/core-http]!
XX of XX: [@azure/event-hubs] blocked by [@azure/core-http]!
XX of XX: [@azure/template] blocked by [@azure/core-http]!
XX of XX: [@azure/cosmos] completed with warnings in ? seconds
XX of XX: [@azure/service-bus] completed with warnings in ? seconds
[@azure/core-http] Returned error code: 1
@@ -60,8 +60,8 @@ Standard output:
@uifabric/merge-styles: Webpack version: 4.29.5
@uifabric/merge-styles: PASS src/styleToClassName.test.ts
@uifabric/merge-styles: PASS src/mergeStyleSets.test.ts
@uifabric/merge-styles: PASS src/concatStyleSets.test.ts
@uifabric/merge-styles: PASS src/mergeStyles.test.ts
@uifabric/merge-styles: PASS src/concatStyleSets.test.ts
@uifabric/merge-styles: PASS src/transforms/rtlifyRules.test.ts
@uifabric/merge-styles: PASS src/transforms/prefixRules.test.ts
@uifabric/merge-styles: PASS src/transforms/provideUnits.test.ts
@@ -425,12 +425,11 @@ lerna info Executing command in 40 packages: "yarn run build --production --lint
@uifabric/foundation: [XX:XX:XX XM] x ------------------------------------
@uifabric/foundation: [XX:XX:XX XM] x Error: Command failed: /usr/local/bin/node /office-ui-fabric-react/node_modules/jest/bin/jest.js --config /office-ui-fabric-react/packages/foundation/jest.config.js --passWithNoTests --colors
@uifabric/foundation: at ChildProcess.<anonymous> (/office-ui-fabric-react/node_modules/just-scripts-utils/lib/exec.js:70:31)
@uifabric/foundation: at ChildProcess.emit (events.js:203:13)
@uifabric/foundation: at ChildProcess.emit (events.js:209:13)
@uifabric/foundation: at ChildProcess.EventEmitter.emit (domain.js:499:23)
@uifabric/foundation: at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
@uifabric/foundation: [XX:XX:XX XM] x ------------------------------------
@uifabric/foundation: [XX:XX:XX XM] x Error previously detected. See above for error messages.
@uifabric/foundation: [XX:XX:XX XM] x Other tasks that did not complete: [webpack]
@uifabric/foundation: error Command failed with exit code 1.
lerna ERR! yarn run build --production --lint exited 1 in '@uifabric/foundation'
lerna WARN complete Waiting for 1 child process to exit. CTRL-C to exit immediately.
@@ -0,0 +1,13 @@
Exit Code: 1
Standard output:
src/config/passport.ts(136,25): error TS2339: Property 'tokens' does not exist on type 'User'.
src/controllers/api.ts(22,28): error TS2339: Property 'tokens' does not exist on type 'User'.
src/controllers/api.ts(24,27): error TS2339: Property 'facebook' does not exist on type 'User'.
src/controllers/user.ts(145,28): error TS2339: Property 'id' does not exist on type 'User'.
src/controllers/user.ts(181,28): error TS2339: Property 'id' does not exist on type 'User'.
src/controllers/user.ts(197,33): error TS2339: Property 'id' does not exist on type 'User'.
src/controllers/user.ts(211,28): error TS2339: Property 'id' does not exist on type 'User'.
Standard error:
-2
View File
@@ -115,8 +115,6 @@ node_modules/async/dist/async.js(1768,32): error TS2532: Object is possibly 'und
node_modules/async/dist/async.js(1768,38): error TS2532: Object is possibly 'undefined'.
node_modules/async/dist/async.js(1769,3): error TS2532: Object is possibly 'undefined'.
node_modules/async/dist/async.js(1773,35): error TS2532: Object is possibly 'undefined'.
node_modules/async/dist/async.js(1951,10): error TS1003: Identifier expected.
node_modules/async/dist/async.js(1951,10): error TS8024: JSDoc '@param' tag has name '', but there is no parameter with that name.
node_modules/async/dist/async.js(1990,16): error TS2554: Expected 3 arguments, but got 1.
node_modules/async/dist/async.js(2116,20): error TS2345: Argument of type 'Function | undefined' is not assignable to parameter of type 'number | undefined'.
Type 'Function' is not assignable to type 'number'.
@@ -299,7 +299,6 @@ node_modules/bluebird/js/release/using.js(78,20): error TS2339: Property 'doDisp
node_modules/bluebird/js/release/using.js(97,23): error TS2339: Property 'data' does not exist on type 'FunctionDisposer'.
node_modules/bluebird/js/release/using.js(131,72): error TS2339: Property 'classString' does not exist on type 'typeof ret'.
node_modules/bluebird/js/release/using.js(223,15): error TS2350: Only a void function can be called with the 'new' keyword.
node_modules/bluebird/js/release/util.js(200,32): error TS2339: Property 'foo' does not exist on type 'FakeConstructor'.
node_modules/bluebird/js/release/util.js(279,45): error TS2345: Argument of type 'PropertyDescriptor | { value: any; } | undefined' is not assignable to parameter of type 'PropertyDescriptor & ThisType<any>'.
Type 'undefined' is not assignable to type 'PropertyDescriptor & ThisType<any>'.
Type 'undefined' is not assignable to type 'PropertyDescriptor'.
File diff suppressed because it is too large Load Diff
+2 -48
View File
@@ -79,10 +79,8 @@ node_modules/lodash/_baseUniq.js(62,40): error TS2554: Expected 2 arguments, but
node_modules/lodash/_baseWrapperValue.js(18,21): error TS2339: Property 'value' does not exist on type 'LazyWrapper'.
node_modules/lodash/_cloneArrayBuffer.js(11,20): error TS2351: This expression is not constructable.
Type 'Function' has no construct signatures.
node_modules/lodash/_cloneBuffer.js(4,69): error TS2339: Property 'nodeType' does not exist on type '(buffer: any, isDeep?: boolean | undefined) => any'.
node_modules/lodash/_cloneBuffer.js(7,80): error TS2339: Property 'nodeType' does not exist on type '{ "../../../tests/cases/user/lodash/node_modules/lodash/_cloneBuffer": (buffer: any, isDeep?: boolean | undefined) => any; }'.
node_modules/lodash/_cloneBuffer.js(22,14): error TS2577: Return type annotation circularly references itself.
node_modules/lodash/_cloneBuffer.js(24,22): error TS2502: 'buffer' is referenced directly or indirectly in its own type annotation.
node_modules/lodash/_cloneBuffer.js(4,69): error TS2339: Property 'nodeType' does not exist on type '(buffer: Buffer, isDeep?: boolean | undefined) => Buffer'.
node_modules/lodash/_cloneBuffer.js(7,80): error TS2339: Property 'nodeType' does not exist on type '{ "../../../tests/cases/user/lodash/node_modules/lodash/_cloneBuffer": (buffer: Buffer, isDeep?: boolean | undefined) => Buffer; }'.
node_modules/lodash/_copySymbols.js(13,40): error TS2554: Expected 0 arguments, but got 1.
node_modules/lodash/_copySymbolsIn.js(13,42): error TS2554: Expected 0 arguments, but got 1.
node_modules/lodash/_createAggregator.js(19,60): error TS2554: Expected 0-1 arguments, but got 2.
@@ -178,8 +176,6 @@ node_modules/lodash/_stackSet.js(24,26): error TS2339: Property 'size' does not
node_modules/lodash/_unicodeWords.js(62,20): error TS8024: JSDoc '@param' tag has name 'The', but there is no parameter with that name.
node_modules/lodash/_updateWrapDetails.js(34,5): error TS1223: 'returns' tag already specified.
node_modules/lodash/_wrapperClone.js(14,20): error TS2339: Property 'clone' does not exist on type 'LazyWrapper'.
node_modules/lodash/ary.js(16,10): error TS1003: Identifier expected.
node_modules/lodash/ary.js(16,10): error TS8024: JSDoc '@param' tag has name '', but there is no parameter with that name.
node_modules/lodash/before.js(34,7): error TS2322: Type 'undefined' is not assignable to type 'Function'.
node_modules/lodash/bind.js(51,55): error TS2454: Variable 'holders' is used before being assigned.
node_modules/lodash/bind.js(55,6): error TS2339: Property 'placeholder' does not exist on type 'Function'.
@@ -187,8 +183,6 @@ node_modules/lodash/bindKey.js(62,53): error TS2454: Variable 'holders' is used
node_modules/lodash/bindKey.js(66,9): error TS2339: Property 'placeholder' does not exist on type 'Function'.
node_modules/lodash/castArray.js(10,15): error TS8029: JSDoc '@param' tag has name 'value', but there is no parameter with that name. It would match 'arguments' if it had an array type.
node_modules/lodash/chain.js(33,16): error TS2348: Value of type 'typeof lodash' is not callable. Did you mean to include 'new'?
node_modules/lodash/chunk.js(20,10): error TS1003: Identifier expected.
node_modules/lodash/chunk.js(20,10): error TS8024: JSDoc '@param' tag has name '', but there is no parameter with that name.
node_modules/lodash/clamp.js(25,5): error TS2322: Type 'number | undefined' is not assignable to type 'number'.
Type 'undefined' is not assignable to type 'number'.
node_modules/lodash/clone.js(33,27): error TS2345: Argument of type 'number' is not assignable to parameter of type 'boolean'.
@@ -237,10 +231,6 @@ node_modules/lodash/core.js(1449,17): error TS2538: Type 'undefined' cannot be u
node_modules/lodash/core.js(1566,57): error TS2554: Expected 1 arguments, but got 2.
node_modules/lodash/core.js(1709,41): error TS2532: Object is possibly 'undefined'.
node_modules/lodash/core.js(1745,18): error TS2348: Value of type 'typeof lodash' is not callable. Did you mean to include 'new'?
node_modules/lodash/core.js(1872,12): error TS1003: Identifier expected.
node_modules/lodash/core.js(1872,12): error TS8024: JSDoc '@param' tag has name '', but there is no parameter with that name.
node_modules/lodash/core.js(2142,12): error TS1003: Identifier expected.
node_modules/lodash/core.js(2142,12): error TS8024: JSDoc '@param' tag has name '', but there is no parameter with that name.
node_modules/lodash/core.js(2183,41): error TS8024: JSDoc '@param' tag has name 'iteratees', but there is no parameter with that name.
node_modules/lodash/core.js(2473,37): error TS2554: Expected 0 arguments, but got 1.
node_modules/lodash/core.js(2609,51): error TS2554: Expected 0 arguments, but got 1.
@@ -261,11 +251,7 @@ node_modules/lodash/core.js(3830,45): error TS2304: Cannot find name 'define'.
node_modules/lodash/core.js(3830,71): error TS2304: Cannot find name 'define'.
node_modules/lodash/core.js(3839,5): error TS2304: Cannot find name 'define'.
node_modules/lodash/core.js(3846,35): error TS2339: Property '_' does not exist on type 'typeof lodash'.
node_modules/lodash/curry.js(24,10): error TS1003: Identifier expected.
node_modules/lodash/curry.js(24,10): error TS8024: JSDoc '@param' tag has name '', but there is no parameter with that name.
node_modules/lodash/curry.js(50,10): error TS2339: Property 'placeholder' does not exist on type 'Function'.
node_modules/lodash/curryRight.js(21,10): error TS1003: Identifier expected.
node_modules/lodash/curryRight.js(21,10): error TS8024: JSDoc '@param' tag has name '', but there is no parameter with that name.
node_modules/lodash/curryRight.js(47,10): error TS2339: Property 'placeholder' does not exist on type 'Function'.
node_modules/lodash/debounce.js(83,17): error TS2532: Object is possibly 'undefined'.
node_modules/lodash/debounce.js(84,27): error TS2532: Object is possibly 'undefined'.
@@ -283,17 +269,11 @@ node_modules/lodash/differenceBy.js(40,52): error TS2345: Argument of type '(val
node_modules/lodash/differenceBy.js(40,101): error TS2554: Expected 0-1 arguments, but got 2.
node_modules/lodash/differenceWith.js(36,52): error TS2345: Argument of type '(value: any) => boolean' is not assignable to parameter of type 'boolean | undefined'.
Type '(value: any) => boolean' is not assignable to type 'true'.
node_modules/lodash/drop.js(13,10): error TS1003: Identifier expected.
node_modules/lodash/drop.js(13,10): error TS8024: JSDoc '@param' tag has name '', but there is no parameter with that name.
node_modules/lodash/dropRight.js(13,10): error TS1003: Identifier expected.
node_modules/lodash/dropRight.js(13,10): error TS8024: JSDoc '@param' tag has name '', but there is no parameter with that name.
node_modules/lodash/dropRightWhile.js(41,48): error TS2554: Expected 0-1 arguments, but got 2.
node_modules/lodash/dropWhile.js(41,48): error TS2554: Expected 0-1 arguments, but got 2.
node_modules/lodash/escape.js(39,39): error TS2769: No overload matches this call.
The last overload gave the following error.
Argument of type 'Function' is not assignable to parameter of type '(substring: string, ...args: any[]) => string'.
node_modules/lodash/every.js(23,10): error TS1003: Identifier expected.
node_modules/lodash/every.js(23,10): error TS8024: JSDoc '@param' tag has name '', but there is no parameter with that name.
node_modules/lodash/every.js(53,51): error TS2554: Expected 0-1 arguments, but got 2.
node_modules/lodash/filter.js(45,51): error TS2554: Expected 0-1 arguments, but got 2.
node_modules/lodash/findIndex.js(52,55): error TS2554: Expected 0-1 arguments, but got 2.
@@ -355,8 +335,6 @@ node_modules/lodash/fp/object.js(2,26): error TS2345: Argument of type '{ 'assig
node_modules/lodash/fp/seq.js(2,26): error TS2345: Argument of type '{ 'at': Function; 'chain': (value: any) => any; 'commit': () => any; 'lodash': typeof lodash; 'next': typeof wrapperNext; 'plant': (value: any) => any; 'reverse': () => any; 'tap': (value: any, interceptor: Function) => any; 'thru': (value: any, interceptor: Function) => any; ... 4 more ...; 'wrapperChain': () => an...' is not assignable to parameter of type 'string'.
node_modules/lodash/fp/string.js(2,26): error TS2345: Argument of type '{ 'camelCase': Function; 'capitalize': (string?: string | undefined) => string; 'deburr': (string?: string | undefined) => string; 'endsWith': (string?: string | undefined, target?: string | undefined, position?: number | undefined) => boolean; ... 26 more ...; 'words': (string?: string | undefined, pattern?: string...' is not assignable to parameter of type 'string'.
node_modules/lodash/fp/util.js(2,26): error TS2345: Argument of type '{ 'attempt': Function; 'bindAll': Function; 'cond': (pairs: any[]) => Function; 'conforms': (source: any) => Function; 'constant': (value: any) => Function; 'defaultTo': (value: any, defaultValue: any) => any; ... 25 more ...; 'uniqueId': (prefix?: string | undefined) => string; }' is not assignable to parameter of type 'string'.
node_modules/lodash/includes.js(24,10): error TS1003: Identifier expected.
node_modules/lodash/includes.js(24,10): error TS8024: JSDoc '@param' tag has name '', but there is no parameter with that name.
node_modules/lodash/intersectionBy.js(41,55): error TS2554: Expected 0-1 arguments, but got 2.
node_modules/lodash/isBuffer.js(8,80): error TS2339: Property 'nodeType' does not exist on type '{ "../../../tests/cases/user/lodash/node_modules/lodash/isBuffer": any; }'.
node_modules/lodash/isEqual.js(32,10): error TS2554: Expected 3-5 arguments, but got 2.
@@ -380,10 +358,6 @@ node_modules/lodash/mixin.js(66,61): error TS2345: Argument of type 'IArguments'
node_modules/lodash/nthArg.js(28,26): error TS2345: Argument of type 'number | undefined' is not assignable to parameter of type 'number'.
Type 'undefined' is not assignable to type 'number'.
node_modules/lodash/omit.js(48,32): error TS2345: Argument of type 'number' is not assignable to parameter of type 'boolean'.
node_modules/lodash/orderBy.js(18,10): error TS1003: Identifier expected.
node_modules/lodash/orderBy.js(18,10): error TS8024: JSDoc '@param' tag has name '', but there is no parameter with that name.
node_modules/lodash/parseInt.js(24,10): error TS1003: Identifier expected.
node_modules/lodash/parseInt.js(24,10): error TS8024: JSDoc '@param' tag has name '', but there is no parameter with that name.
node_modules/lodash/partial.js(48,9): error TS2339: Property 'placeholder' does not exist on type 'Function'.
node_modules/lodash/partialRight.js(47,14): error TS2339: Property 'placeholder' does not exist on type 'Function'.
node_modules/lodash/pickBy.js(33,12): error TS2722: Cannot invoke an object which is possibly 'undefined'.
@@ -395,13 +369,7 @@ node_modules/lodash/reduce.js(48,50): error TS2554: Expected 0-1 arguments, but
node_modules/lodash/reduceRight.js(33,50): error TS2554: Expected 0-1 arguments, but got 2.
node_modules/lodash/reject.js(43,58): error TS2554: Expected 0-1 arguments, but got 2.
node_modules/lodash/remove.js(41,39): error TS2554: Expected 0-1 arguments, but got 2.
node_modules/lodash/repeat.js(15,10): error TS1003: Identifier expected.
node_modules/lodash/repeat.js(15,10): error TS8024: JSDoc '@param' tag has name '', but there is no parameter with that name.
node_modules/lodash/replace.js(15,29): error TS8029: JSDoc '@param' tag has name 'replacement', but there is no parameter with that name. It would match 'arguments' if it had an array type.
node_modules/lodash/sampleSize.js(17,10): error TS1003: Identifier expected.
node_modules/lodash/sampleSize.js(17,10): error TS8024: JSDoc '@param' tag has name '', but there is no parameter with that name.
node_modules/lodash/some.js(18,10): error TS1003: Identifier expected.
node_modules/lodash/some.js(18,10): error TS8024: JSDoc '@param' tag has name '', but there is no parameter with that name.
node_modules/lodash/some.js(48,51): error TS2554: Expected 0-1 arguments, but got 2.
node_modules/lodash/sortedIndexBy.js(30,65): error TS2554: Expected 0-1 arguments, but got 2.
node_modules/lodash/sortedLastIndexBy.js(30,65): error TS2554: Expected 0-1 arguments, but got 2.
@@ -409,14 +377,8 @@ node_modules/lodash/sortedUniqBy.js(22,52): error TS2554: Expected 0-1 arguments
node_modules/lodash/split.js(33,5): error TS2322: Type 'undefined' is not assignable to type 'string | RegExp'.
node_modules/lodash/spread.js(53,22): error TS2538: Type 'undefined' cannot be used as an index type.
node_modules/lodash/sumBy.js(29,45): error TS2554: Expected 0-1 arguments, but got 2.
node_modules/lodash/take.js(13,10): error TS1003: Identifier expected.
node_modules/lodash/take.js(13,10): error TS8024: JSDoc '@param' tag has name '', but there is no parameter with that name.
node_modules/lodash/takeRight.js(13,10): error TS1003: Identifier expected.
node_modules/lodash/takeRight.js(13,10): error TS8024: JSDoc '@param' tag has name '', but there is no parameter with that name.
node_modules/lodash/takeRightWhile.js(41,48): error TS2554: Expected 0-1 arguments, but got 2.
node_modules/lodash/takeWhile.js(41,48): error TS2554: Expected 0-1 arguments, but got 2.
node_modules/lodash/template.js(71,10): error TS1003: Identifier expected.
node_modules/lodash/template.js(71,10): error TS8024: JSDoc '@param' tag has name '', but there is no parameter with that name.
node_modules/lodash/template.js(152,34): error TS2532: Object is possibly 'undefined'.
node_modules/lodash/template.js(159,21): error TS2532: Object is possibly 'undefined'.
node_modules/lodash/template.js(164,6): error TS2532: Object is possibly 'undefined'.
@@ -437,12 +399,6 @@ node_modules/lodash/toLower.js(11,21): error TS8024: JSDoc '@param' tag has name
node_modules/lodash/toUpper.js(11,21): error TS8024: JSDoc '@param' tag has name 'string', but there is no parameter with that name.
node_modules/lodash/transform.js(46,37): error TS2554: Expected 0-1 arguments, but got 2.
node_modules/lodash/transform.js(60,12): error TS2722: Cannot invoke an object which is possibly 'undefined'.
node_modules/lodash/trim.js(20,10): error TS1003: Identifier expected.
node_modules/lodash/trim.js(20,10): error TS8024: JSDoc '@param' tag has name '', but there is no parameter with that name.
node_modules/lodash/trimEnd.js(19,10): error TS1003: Identifier expected.
node_modules/lodash/trimEnd.js(19,10): error TS8024: JSDoc '@param' tag has name '', but there is no parameter with that name.
node_modules/lodash/trimStart.js(19,10): error TS1003: Identifier expected.
node_modules/lodash/trimStart.js(19,10): error TS8024: JSDoc '@param' tag has name '', but there is no parameter with that name.
node_modules/lodash/truncate.js(60,36): error TS2532: Object is possibly 'undefined'.
node_modules/lodash/truncate.js(61,26): error TS2532: Object is possibly 'undefined'.
node_modules/lodash/truncate.js(62,30): error TS2532: Object is possibly 'undefined'.
@@ -460,8 +416,6 @@ node_modules/lodash/unionBy.js(36,91): error TS2554: Expected 0-1 arguments, but
node_modules/lodash/unionWith.js(31,42): error TS2345: Argument of type '(value: any) => boolean' is not assignable to parameter of type 'boolean | undefined'.
Type '(value: any) => boolean' is not assignable to type 'true'.
node_modules/lodash/uniqBy.js(28,75): error TS2554: Expected 0-1 arguments, but got 2.
node_modules/lodash/words.js(15,10): error TS1003: Identifier expected.
node_modules/lodash/words.js(15,10): error TS8024: JSDoc '@param' tag has name '', but there is no parameter with that name.
node_modules/lodash/wrapperAt.js(34,17): error TS2339: Property 'slice' does not exist on type 'LazyWrapper'.
node_modules/lodash/wrapperAt.js(40,51): error TS2339: Property 'thru' does not exist on type 'LodashWrapper'.
node_modules/lodash/wrapperReverse.js(33,23): error TS2339: Property 'reverse' does not exist on type 'LazyWrapper'.
+1 -1
View File
@@ -584,7 +584,7 @@ node_modules/npm/lib/npm.js(429,38): error TS2339: Property 'config' does not ex
node_modules/npm/lib/npm.js(439,33): error TS2339: Property 'config' does not exist on type 'typeof EventEmitter'.
node_modules/npm/lib/npm.js(445,34): error TS2339: Property 'commands' does not exist on type 'typeof EventEmitter'.
node_modules/npm/lib/npm.js(460,13): error TS2339: Property 'commands' does not exist on type 'typeof EventEmitter'.
node_modules/npm/lib/npm.js(465,7): error TS2367: This condition will always return 'false' since the types 'NodeModule | undefined' and '{ "../../../tests/cases/user/npm/node_modules/npm/lib/npm": typeof EventEmitter; }' have no overlap.
node_modules/npm/lib/npm.js(465,7): error TS2367: This condition will always return 'false' since the types 'NodeModule | undefined' and '{ "../../../tests/cases/user/npm/node_modules/npm/lib/npm": typeof internal.EventEmitter; }' have no overlap.
node_modules/npm/lib/outdated.js(36,16): error TS2339: Property 'config' does not exist on type 'typeof EventEmitter'.
node_modules/npm/lib/outdated.js(71,30): error TS2339: Property 'dir' does not exist on type 'typeof EventEmitter'.
node_modules/npm/lib/outdated.js(74,11): error TS2339: Property 'config' does not exist on type 'typeof EventEmitter'.
+7 -2
View File
@@ -64,10 +64,15 @@ lib/Page.js(519,15): error TS2503: Cannot find namespace 'Protocol'.
lib/Page.js(529,15): error TS2503: Cannot find namespace 'Protocol'.
lib/Page.js(554,15): error TS2503: Cannot find namespace 'Protocol'.
lib/Page.js(607,14): error TS2503: Cannot find namespace 'Protocol'.
lib/Page.js(908,19): error TS2503: Cannot find namespace 'Protocol'.
lib/Page.js(1309,15): error TS2503: Cannot find namespace 'Protocol'.
lib/Page.js(914,19): error TS2503: Cannot find namespace 'Protocol'.
lib/Page.js(1315,15): error TS2503: Cannot find namespace 'Protocol'.
lib/Target.js(23,15): error TS2503: Cannot find namespace 'Protocol'.
lib/Target.js(87,7): error TS2322: Type 'Promise<Worker | Worker>' is not assignable to type 'Promise<Worker>'.
Type 'Worker | Worker' is not assignable to type 'Worker'.
Type 'Worker' is missing the following properties from type 'Worker': onmessage, postMessage, terminate, addEventListener, and 3 more.
lib/Target.js(135,15): error TS2503: Cannot find namespace 'Protocol'.
lib/WebSocketTransport.js(32,72): error TS2345: Argument of type 'WebSocket' is not assignable to parameter of type 'WebSocket'.
Property 'dispatchEvent' is missing in type 'WebSocket' but required in type 'WebSocket'.
lib/Worker.js(25,50): error TS2503: Cannot find namespace 'Protocol'.
lib/Worker.js(26,24): error TS2503: Cannot find namespace 'Protocol'.
lib/Worker.js(33,26): error TS2503: Cannot find namespace 'Protocol'.
+3 -1
View File
@@ -41,7 +41,7 @@ node_modules/uglify-js/lib/compress.js(3839,12): error TS2339: Property 'push' d
node_modules/uglify-js/lib/compress.js(3914,38): error TS2554: Expected 0 arguments, but got 1.
node_modules/uglify-js/lib/compress.js(3935,24): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'.
node_modules/uglify-js/lib/compress.js(3945,28): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'.
node_modules/uglify-js/lib/compress.js(4114,21): error TS2403: Subsequent variable declarations must have the same type. Variable 'defs' must be of type 'Dictionary & { set: (key: any, val: any) => Dictionary & ...; add: (key: any, val: any) => Dictionary & ...; get: (key: any) => any; del: (key: any) => Dictionary & ...; has: (key: any) => boolean; ... 4 more ...; toObject: () => any; }', but here has type 'any'.
node_modules/uglify-js/lib/compress.js(4114,21): error TS2403: Subsequent variable declarations must have the same type. Variable 'defs' must be of type 'Dictionary', but here has type 'any'.
node_modules/uglify-js/lib/compress.js(4166,17): error TS2447: The '|=' operator is not allowed for boolean types. Consider using '||' instead.
node_modules/uglify-js/lib/compress.js(4229,45): error TS2554: Expected 0 arguments, but got 1.
node_modules/uglify-js/lib/compress.js(4340,33): error TS2554: Expected 0 arguments, but got 1.
@@ -105,6 +105,8 @@ node_modules/uglify-js/lib/propmangle.js(70,45): error TS2339: Property 'prototy
node_modules/uglify-js/lib/propmangle.js(80,29): error TS2554: Expected 0 arguments, but got 1.
node_modules/uglify-js/lib/propmangle.js(94,30): error TS2554: Expected 0 arguments, but got 1.
node_modules/uglify-js/lib/propmangle.js(146,29): error TS2554: Expected 0 arguments, but got 1.
node_modules/uglify-js/lib/scope.js(88,21): error TS2339: Property 'defun' does not exist on type 'SymbolDef'.
node_modules/uglify-js/lib/scope.js(88,35): error TS2339: Property 'defun' does not exist on type 'SymbolDef'.
node_modules/uglify-js/lib/scope.js(102,29): error TS2554: Expected 0 arguments, but got 1.
node_modules/uglify-js/lib/scope.js(157,29): error TS2554: Expected 0 arguments, but got 1.
node_modules/uglify-js/lib/scope.js(192,47): error TS2554: Expected 0 arguments, but got 1.
@@ -1,8 +0,0 @@
Exit Code: 1
Standard output:
lib/Compilation.js(538,5): error TS2322: Type 'Readonly<{ error: string; warn: string; info: string; log: string; debug: string; trace: string; group: string; groupCollapsed: string; groupEnd: string; profile: string; profileEnd: string; time: string; clear: string; status: string; }>' is not assignable to type 'string'.
lib/Compiler.js(228,48): error TS2345: Argument of type 'Readonly<{ error: string; warn: string; info: string; log: string; debug: string; trace: string; group: string; groupCollapsed: string; groupEnd: string; profile: string; profileEnd: string; time: string; clear: string; status: string; }>' is not assignable to parameter of type 'string'.
Standard error:
@@ -15,7 +15,7 @@ verify.codeFix({
constructor() {
}
foo() {
({ bar: () => { } });
({ bar: () => { } })
}
}
`,
+1 -1
View File
@@ -18,7 +18,7 @@ edit.applyRefactor({
q[0]++
function newFunction() {
return [0];
return [0]
}
}`
});
@@ -0,0 +1,16 @@
/// <reference path='fourslash.ts' />
//// function foo(a: /*a*/{ a: number | string, b: string }/*b*/) { }
goTo.select("a", "b");
edit.applyRefactor({
refactorName: "Extract type",
actionName: "Extract to interface",
actionDescription: "Extract to interface",
newContent: `interface /*RENAME*/NewType {
a: number | string;
b: string;
}
function foo(a: NewType) { }`,
});
@@ -0,0 +1,18 @@
/// <reference path='fourslash.ts' />
//// function foo(a: /*a*/{ a: number | string, b: string } & { c: string } & { d: boolean }/*b*/) { }
goTo.select("a", "b");
edit.applyRefactor({
refactorName: "Extract type",
actionName: "Extract to interface",
actionDescription: "Extract to interface",
newContent: `interface /*RENAME*/NewType {
a: number | string;
b: string;
c: string;
d: boolean;
}
function foo(a: NewType) { }`,
});
@@ -0,0 +1,7 @@
/// <reference path='fourslash.ts' />
//// type T = { c: string }
//// function foo(a: /*a*/{ a: number | string, b: string } & T/*b*/) { }
goTo.select("a", "b");
verify.not.refactorAvailable("Extract type", "Extract to interface")
@@ -0,0 +1,7 @@
/// <reference path='fourslash.ts' />
//// type T = { c: string } & { d: boolean }
//// function foo(a: /*a*/{ a: number | string, b: string } & T/*b*/) { }
goTo.select("a", "b");
verify.not.refactorAvailable("Extract type", "Extract to interface")
@@ -0,0 +1,7 @@
/// <reference path='fourslash.ts' />
//// type T = { c: string } & Record<string, string>
//// function foo(a: /*a*/{ a: number | string, b: string } & T/*b*/) { }
goTo.select("a", "b");
verify.not.refactorAvailable("Extract type", "Extract to interface")
@@ -0,0 +1,7 @@
/// <reference path='fourslash.ts' />
//// type T = { c: string }
//// function foo(a: /*a*/T/*b*/) { }
goTo.select("a", "b");
verify.not.refactorAvailable("Extract type", "Extract to interface")
@@ -0,0 +1,16 @@
/// <reference path='fourslash.ts' />
//// function foo<U>(a: /*a*/{ a: string } & { b: U }/*b*/) { }
goTo.select("a", "b");
edit.applyRefactor({
refactorName: "Extract type",
actionName: "Extract to interface",
actionDescription: "Extract to interface",
newContent: `interface /*RENAME*/NewType<U> {
a: string;
b: U;
}
function foo<U>(a: NewType<U>) { }`,
});
@@ -0,0 +1,6 @@
/// <reference path='fourslash.ts' />
//// function foo(a: /*a*/{ a: number | string, b: string } & { b: string } & { d: boolean }/*b*/) { }
goTo.select("a", "b");
verify.not.refactorAvailable("Extract type", "Extract to interface")
@@ -0,0 +1,6 @@
/// <reference path='fourslash.ts' />
//// function foo(a: /*a*/{ a: number | string, b: string } & { b: number } & { d: boolean }/*b*/) { }
goTo.select("a", "b");
verify.not.refactorAvailable("Extract type", "Extract to interface")