Merge pull request #10538 from Microsoft/find-declarations-of-js-module-export

Fix crash when checking module exports for export=
This commit is contained in:
Nathan Shively-Sanders
2016-08-25 16:14:13 -07:00
committed by GitHub
11 changed files with 123 additions and 7 deletions

View File

@@ -0,0 +1,9 @@
tests/cases/compiler/errorForConflictingExportEqualsValue.ts(2,1): error TS2309: An export assignment cannot be used in a module with other exported elements.
==== tests/cases/compiler/errorForConflictingExportEqualsValue.ts (1 errors) ====
export var x;
export = {};
~~~~~~~~~~~~
!!! error TS2309: An export assignment cannot be used in a module with other exported elements.

View File

@@ -0,0 +1,8 @@
//// [errorForConflictingExportEqualsValue.ts]
export var x;
export = {};
//// [errorForConflictingExportEqualsValue.js]
"use strict";
module.exports = {};

View File

@@ -0,0 +1,26 @@
/index.ts(4,5): error TS2339: Property 'y' does not exist on type 'typeof "shortid"'.
==== /index.ts (1 errors) ====
/// <reference path="/typings/index.d.ts" />
import * as foo from "shortid";
foo.x // found in index.d.ts
foo.y // ignored from shortid/index.js
~
!!! error TS2339: Property 'y' does not exist on type 'typeof "shortid"'.
==== /node_modules/shortid/node_modules/z/index.js (0 errors) ====
// z will not be found because maxNodeModulesJsDepth: 0
module.exports = { z: 'no' };
==== /node_modules/shortid/index.js (0 errors) ====
var z = require('z');
var y = { y: 'foo' };
module.exports = y;
==== /typings/index.d.ts (0 errors) ====
declare module "shortid" {
export var x: number;
}

View File

@@ -0,0 +1,28 @@
[
"======== Resolving module 'shortid' from '/index.ts'. ========",
"Explicitly specified module resolution kind: 'NodeJs'.",
"Loading module 'shortid' from 'node_modules' folder.",
"File '/node_modules/shortid.ts' does not exist.",
"File '/node_modules/shortid.tsx' does not exist.",
"File '/node_modules/shortid.d.ts' does not exist.",
"File '/node_modules/shortid.js' does not exist.",
"File '/node_modules/shortid.jsx' does not exist.",
"File '/node_modules/shortid/package.json' does not exist.",
"File '/node_modules/shortid/index.ts' does not exist.",
"File '/node_modules/shortid/index.tsx' does not exist.",
"File '/node_modules/shortid/index.d.ts' does not exist.",
"File '/node_modules/shortid/index.js' exist - use it as a name resolution result.",
"File '/node_modules/@types/shortid.ts' does not exist.",
"File '/node_modules/@types/shortid.tsx' does not exist.",
"File '/node_modules/@types/shortid.d.ts' does not exist.",
"File '/node_modules/@types/shortid.js' does not exist.",
"File '/node_modules/@types/shortid.jsx' does not exist.",
"File '/node_modules/@types/shortid/package.json' does not exist.",
"File '/node_modules/@types/shortid/index.ts' does not exist.",
"File '/node_modules/@types/shortid/index.tsx' does not exist.",
"File '/node_modules/@types/shortid/index.d.ts' does not exist.",
"File '/node_modules/@types/shortid/index.js' does not exist.",
"File '/node_modules/@types/shortid/index.jsx' does not exist.",
"Resolving real path for '/node_modules/shortid/index.js', result '/node_modules/shortid/index.js'",
"======== Module name 'shortid' was successfully resolved to '/node_modules/shortid/index.js'. ========"
]

View File

@@ -0,0 +1,2 @@
export var x;
export = {};

View File

@@ -0,0 +1,36 @@
// @module: commonjs
// @moduleResolution: node
// @allowJs: true
// @traceResolution: true
// @noEmit: true
// @filename: /tsconfig.json
{
"compileOnSave": true,
"compilerOptions": {
"module": "commonjs",
"moduleResolution": "node",
"outDir": "bin"
},
"exclude": [ "node_modules" ]
}
// @filename: /node_modules/shortid/node_modules/z/index.js
// z will not be found because maxNodeModulesJsDepth: 0
module.exports = { z: 'no' };
// @filename: /node_modules/shortid/index.js
var z = require('z');
var y = { y: 'foo' };
module.exports = y;
// @filename: /typings/index.d.ts
declare module "shortid" {
export var x: number;
}
// @filename: /index.ts
/// <reference path="/typings/index.d.ts" />
import * as foo from "shortid";
foo.x // found in index.d.ts
foo.y // ignored from shortid/index.js

View File

@@ -2,6 +2,7 @@
"compilerOptions": {
"allowJs": true,
"declaration": false,
"moduleResolution": "node"
"moduleResolution": "node",
"maxNodeModuleJsDepth": 2
}
}