Add assumeChangesOnlyAffectDirectDependencies as a option to skip checking and generating .d.ts files for files indirectly importing affected file (#35711)

* Baselining tsc --watch output

* Add noIndirectImports as a option to skip checking and generating .d.ts files for files indirectly importing affected file
Fixes #33329

* Rename option to assumeChangesOnlyAffectDirectDependencies

* Description change as per feedback
This commit is contained in:
Sheetal Nandi
2020-01-03 13:02:45 -08:00
committed by GitHub
parent 5a342742d0
commit 18269c0fc8
21 changed files with 2515 additions and 1 deletions
+3 -1
View File
@@ -433,7 +433,9 @@ namespace ts {
return;
}
forEachReferencingModulesOfExportOfAffectedFile(state, affectedFile, (state, path) => handleDtsMayChangeOf(state, path, cancellationToken, computeHash));
if (!state.compilerOptions.assumeChangesOnlyAffectDirectDependencies) {
forEachReferencingModulesOfExportOfAffectedFile(state, affectedFile, (state, path) => handleDtsMayChangeOf(state, path, cancellationToken, computeHash));
}
}
/**
+8
View File
@@ -202,6 +202,14 @@ namespace ts {
description: Diagnostics.Enable_incremental_compilation,
transpileOptionValue: undefined
},
{
name: "assumeChangesOnlyAffectDirectDependencies",
type: "boolean",
affectsSemanticDiagnostics: true,
affectsEmit: true,
category: Diagnostics.Advanced_Options,
description: Diagnostics.Have_recompiles_in_incremental_and_watch_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it
},
{
name: "locale",
type: "string",
+4
View File
@@ -4366,6 +4366,10 @@
"category": "Message",
"code": 6383
},
"Have recompiles in '--incremental' and '--watch' assume that changes within a file will only affect files directly depending on it.": {
"category": "Message",
"code": 6384
},
"The expected type comes from property '{0}' which is declared here on type '{1}'": {
"category": "Message",
+1
View File
@@ -16,6 +16,7 @@ namespace ts {
/*@internal*/ listFiles?: boolean;
/*@internal*/ pretty?: boolean;
incremental?: boolean;
assumeChangesOnlyAffectDirectDependencies?: boolean;
traceResolution?: boolean;
/* @internal */ diagnostics?: boolean;
+1
View File
@@ -5070,6 +5070,7 @@ namespace ts {
noUnusedLocals?: boolean;
noUnusedParameters?: boolean;
noImplicitUseStrict?: boolean;
assumeChangesOnlyAffectDirectDependencies?: boolean;
noLib?: boolean;
noResolve?: boolean;
out?: string;
@@ -66,6 +66,18 @@ namespace ts.tscWatch {
subScenario: `config with --isolatedModules and --declaration/${input.subScenario}`,
configFile: () => changeCompilerOptions(input, { isolatedModules: true, declaration: true })
});
verifyEmitAndErrorUpdatesWorker({
...input,
subScenario: `config with --assumeChangesOnlyAffectDirectDependencies/${input.subScenario}`,
configFile: () => changeCompilerOptions(input, { assumeChangesOnlyAffectDirectDependencies: true })
});
verifyEmitAndErrorUpdatesWorker({
...input,
subScenario: `config with --assumeChangesOnlyAffectDirectDependencies and --declaration/${input.subScenario}`,
configFile: () => changeCompilerOptions(input, { assumeChangesOnlyAffectDirectDependencies: true, declaration: true })
});
}
describe("deep import changes", () => {
+2
View File
@@ -2673,6 +2673,7 @@ declare namespace ts {
noUnusedLocals?: boolean;
noUnusedParameters?: boolean;
noImplicitUseStrict?: boolean;
assumeChangesOnlyAffectDirectDependencies?: boolean;
noLib?: boolean;
noResolve?: boolean;
out?: string;
@@ -4779,6 +4780,7 @@ declare namespace ts {
force?: boolean;
verbose?: boolean;
incremental?: boolean;
assumeChangesOnlyAffectDirectDependencies?: boolean;
traceResolution?: boolean;
[option: string]: CompilerOptionsValue | undefined;
}
+2
View File
@@ -2673,6 +2673,7 @@ declare namespace ts {
noUnusedLocals?: boolean;
noUnusedParameters?: boolean;
noImplicitUseStrict?: boolean;
assumeChangesOnlyAffectDirectDependencies?: boolean;
noLib?: boolean;
noResolve?: boolean;
out?: string;
@@ -4779,6 +4780,7 @@ declare namespace ts {
force?: boolean;
verbose?: boolean;
incremental?: boolean;
assumeChangesOnlyAffectDirectDependencies?: boolean;
traceResolution?: boolean;
[option: string]: CompilerOptionsValue | undefined;
}
@@ -0,0 +1,5 @@
{
"compilerOptions": {
"assumeChangesOnlyAffectDirectDependencies": true
}
}
@@ -0,0 +1,203 @@
/a/lib/tsc.js --w
//// [/user/username/projects/myproject/a.ts]
import {B} from './b';
declare var console: any;
let b = new B();
console.log(b.c.d);
//// [/user/username/projects/myproject/b.ts]
import {C} from './c';
export class B
{
c = new C();
}
//// [/user/username/projects/myproject/c.ts]
export class C
{
d = 1;
}
//// [/user/username/projects/myproject/tsconfig.json]
{"compilerOptions":{"assumeChangesOnlyAffectDirectDependencies":true,"declaration":true}}
//// [/a/lib/lib.d.ts]
/// <reference no-default-lib="true"/>
interface Boolean {}
interface Function {}
interface CallableFunction {}
interface NewableFunction {}
interface IArguments {}
interface Number { toExponential: any; }
interface Object {}
interface RegExp {}
interface String { charAt: any; }
interface Array<T> { length: number; [n: number]: T; }
//// [/user/username/projects/myproject/c.js]
"use strict";
exports.__esModule = true;
var C = /** @class */ (function () {
function C() {
this.d = 1;
}
return C;
}());
exports.C = C;
//// [/user/username/projects/myproject/c.d.ts]
export declare class C {
d: number;
}
//// [/user/username/projects/myproject/b.js]
"use strict";
exports.__esModule = true;
var c_1 = require("./c");
var B = /** @class */ (function () {
function B() {
this.c = new c_1.C();
}
return B;
}());
exports.B = B;
//// [/user/username/projects/myproject/b.d.ts]
import { C } from './c';
export declare class B {
c: C;
}
//// [/user/username/projects/myproject/a.js]
"use strict";
exports.__esModule = true;
var b_1 = require("./b");
var b = new b_1.B();
console.log(b.c.d);
//// [/user/username/projects/myproject/a.d.ts]
export {};
Output::
>> Screen clear
12:00:25 AM - Starting compilation in watch mode...
12:00:38 AM - Found 0 errors. Watching for file changes.
Program root files: ["/user/username/projects/myproject/a.ts","/user/username/projects/myproject/b.ts","/user/username/projects/myproject/c.ts"]
Program options: {"assumeChangesOnlyAffectDirectDependencies":true,"declaration":true,"watch":true,"configFilePath":"/user/username/projects/myproject/tsconfig.json"}
Program files::
/a/lib/lib.d.ts
/user/username/projects/myproject/c.ts
/user/username/projects/myproject/b.ts
/user/username/projects/myproject/a.ts
Semantic diagnostics in builder refreshed for::
/a/lib/lib.d.ts
/user/username/projects/myproject/c.ts
/user/username/projects/myproject/b.ts
/user/username/projects/myproject/a.ts
WatchedFiles::
/user/username/projects/myproject/tsconfig.json:
{"pollingInterval":250}
/user/username/projects/myproject/a.ts:
{"pollingInterval":250}
/user/username/projects/myproject/b.ts:
{"pollingInterval":250}
/user/username/projects/myproject/c.ts:
{"pollingInterval":250}
/a/lib/lib.d.ts:
{"pollingInterval":250}
FsWatches::
FsWatchesRecursive::
/user/username/projects/myproject/node_modules/@types:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
/user/username/projects/myproject:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
exitCode:: ExitStatus.undefined
Change:: Rename property d to d2 of class C
//// [/user/username/projects/myproject/c.ts]
export class C
{
d2 = 1;
}
//// [/user/username/projects/myproject/c.js]
"use strict";
exports.__esModule = true;
var C = /** @class */ (function () {
function C() {
this.d2 = 1;
}
return C;
}());
exports.C = C;
//// [/user/username/projects/myproject/c.d.ts]
export declare class C {
d2: number;
}
//// [/user/username/projects/myproject/b.js] file written with same contents
//// [/user/username/projects/myproject/b.d.ts] file written with same contents
Output::
>> Screen clear
12:00:42 AM - File change detected. Starting incremental compilation...
12:00:55 AM - Found 0 errors. Watching for file changes.
Program root files: ["/user/username/projects/myproject/a.ts","/user/username/projects/myproject/b.ts","/user/username/projects/myproject/c.ts"]
Program options: {"assumeChangesOnlyAffectDirectDependencies":true,"declaration":true,"watch":true,"configFilePath":"/user/username/projects/myproject/tsconfig.json"}
Program files::
/a/lib/lib.d.ts
/user/username/projects/myproject/c.ts
/user/username/projects/myproject/b.ts
/user/username/projects/myproject/a.ts
Semantic diagnostics in builder refreshed for::
/user/username/projects/myproject/c.ts
/user/username/projects/myproject/b.ts
WatchedFiles::
/user/username/projects/myproject/tsconfig.json:
{"pollingInterval":250}
/user/username/projects/myproject/a.ts:
{"pollingInterval":250}
/user/username/projects/myproject/b.ts:
{"pollingInterval":250}
/user/username/projects/myproject/c.ts:
{"pollingInterval":250}
/a/lib/lib.d.ts:
{"pollingInterval":250}
FsWatches::
FsWatchesRecursive::
/user/username/projects/myproject/node_modules/@types:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
/user/username/projects/myproject:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
exitCode:: ExitStatus.undefined
@@ -0,0 +1,149 @@
/a/lib/tsc.js --w
//// [/user/username/projects/myproject/a.ts]
import {B} from './b';
declare var console: any;
let b = new B();
console.log(b.c.d);
//// [/user/username/projects/myproject/b.d.ts]
import {C} from './c';
export class B
{
c: C;
}
//// [/user/username/projects/myproject/c.d.ts]
export class C
{
d: number;
}
//// [/user/username/projects/myproject/tsconfig.json]
{"compilerOptions":{"assumeChangesOnlyAffectDirectDependencies":true,"declaration":true}}
//// [/a/lib/lib.d.ts]
/// <reference no-default-lib="true"/>
interface Boolean {}
interface Function {}
interface CallableFunction {}
interface NewableFunction {}
interface IArguments {}
interface Number { toExponential: any; }
interface Object {}
interface RegExp {}
interface String { charAt: any; }
interface Array<T> { length: number; [n: number]: T; }
//// [/user/username/projects/myproject/a.js]
"use strict";
exports.__esModule = true;
var b_1 = require("./b");
var b = new b_1.B();
console.log(b.c.d);
//// [/user/username/projects/myproject/a.d.ts]
export {};
Output::
>> Screen clear
12:00:25 AM - Starting compilation in watch mode...
12:00:30 AM - Found 0 errors. Watching for file changes.
Program root files: ["/user/username/projects/myproject/a.ts","/user/username/projects/myproject/b.d.ts","/user/username/projects/myproject/c.d.ts"]
Program options: {"assumeChangesOnlyAffectDirectDependencies":true,"declaration":true,"watch":true,"configFilePath":"/user/username/projects/myproject/tsconfig.json"}
Program files::
/a/lib/lib.d.ts
/user/username/projects/myproject/c.d.ts
/user/username/projects/myproject/b.d.ts
/user/username/projects/myproject/a.ts
Semantic diagnostics in builder refreshed for::
/a/lib/lib.d.ts
/user/username/projects/myproject/c.d.ts
/user/username/projects/myproject/b.d.ts
/user/username/projects/myproject/a.ts
WatchedFiles::
/user/username/projects/myproject/tsconfig.json:
{"pollingInterval":250}
/user/username/projects/myproject/a.ts:
{"pollingInterval":250}
/user/username/projects/myproject/b.d.ts:
{"pollingInterval":250}
/user/username/projects/myproject/c.d.ts:
{"pollingInterval":250}
/a/lib/lib.d.ts:
{"pollingInterval":250}
FsWatches::
/user/username/projects/myproject:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
FsWatchesRecursive::
/user/username/projects/myproject/node_modules/@types:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
/user/username/projects/myproject:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
exitCode:: ExitStatus.undefined
Change:: Rename property d to d2 of class C
//// [/user/username/projects/myproject/c.d.ts]
export class C
{
d2: number;
}
Output::
>> Screen clear
12:00:34 AM - File change detected. Starting incremental compilation...
12:00:35 AM - Found 0 errors. Watching for file changes.
Program root files: ["/user/username/projects/myproject/a.ts","/user/username/projects/myproject/b.d.ts","/user/username/projects/myproject/c.d.ts"]
Program options: {"assumeChangesOnlyAffectDirectDependencies":true,"declaration":true,"watch":true,"configFilePath":"/user/username/projects/myproject/tsconfig.json"}
Program files::
/a/lib/lib.d.ts
/user/username/projects/myproject/c.d.ts
/user/username/projects/myproject/b.d.ts
/user/username/projects/myproject/a.ts
Semantic diagnostics in builder refreshed for::
/user/username/projects/myproject/c.d.ts
/user/username/projects/myproject/b.d.ts
WatchedFiles::
/user/username/projects/myproject/tsconfig.json:
{"pollingInterval":250}
/user/username/projects/myproject/a.ts:
{"pollingInterval":250}
/user/username/projects/myproject/b.d.ts:
{"pollingInterval":250}
/user/username/projects/myproject/c.d.ts:
{"pollingInterval":250}
/a/lib/lib.d.ts:
{"pollingInterval":250}
FsWatches::
/user/username/projects/myproject:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
FsWatchesRecursive::
/user/username/projects/myproject/node_modules/@types:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
/user/username/projects/myproject:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
exitCode:: ExitStatus.undefined
@@ -0,0 +1,259 @@
/a/lib/tsc.js --w
//// [/user/username/projects/myproject/a.ts]
export interface Point {
name: string;
c: Coords;
}
export interface Coords {
x2: number;
y: number;
}
//// [/user/username/projects/myproject/b.ts]
import { Point } from "./a";
export interface PointWrapper extends Point {
}
//// [/user/username/projects/myproject/c.ts]
import { PointWrapper } from "./b";
export function getPoint(): PointWrapper {
return {
name: "test",
c: {
x: 1,
y: 2
}
}
};
//// [/user/username/projects/myproject/d.ts]
import { getPoint } from "./c";
getPoint().c.x;
//// [/user/username/projects/myproject/e.ts]
import "./d";
//// [/user/username/projects/myproject/tsconfig.json]
{"compilerOptions":{"assumeChangesOnlyAffectDirectDependencies":true,"declaration":true}}
//// [/a/lib/lib.d.ts]
/// <reference no-default-lib="true"/>
interface Boolean {}
interface Function {}
interface CallableFunction {}
interface NewableFunction {}
interface IArguments {}
interface Number { toExponential: any; }
interface Object {}
interface RegExp {}
interface String { charAt: any; }
interface Array<T> { length: number; [n: number]: T; }
//// [/user/username/projects/myproject/a.js]
"use strict";
exports.__esModule = true;
//// [/user/username/projects/myproject/a.d.ts]
export interface Point {
name: string;
c: Coords;
}
export interface Coords {
x2: number;
y: number;
}
//// [/user/username/projects/myproject/b.js]
"use strict";
exports.__esModule = true;
//// [/user/username/projects/myproject/b.d.ts]
import { Point } from "./a";
export interface PointWrapper extends Point {
}
//// [/user/username/projects/myproject/c.js]
"use strict";
exports.__esModule = true;
function getPoint() {
return {
name: "test",
c: {
x: 1,
y: 2
}
};
}
exports.getPoint = getPoint;
;
//// [/user/username/projects/myproject/c.d.ts]
import { PointWrapper } from "./b";
export declare function getPoint(): PointWrapper;
//// [/user/username/projects/myproject/d.js]
"use strict";
exports.__esModule = true;
var c_1 = require("./c");
c_1.getPoint().c.x;
//// [/user/username/projects/myproject/d.d.ts]
export {};
//// [/user/username/projects/myproject/e.js]
"use strict";
exports.__esModule = true;
require("./d");
//// [/user/username/projects/myproject/e.d.ts]
import "./d";
Output::
>> Screen clear
12:00:29 AM - Starting compilation in watch mode...
c.ts(6,13): error TS2322: Type '{ x: number; y: number; }' is not assignable to type 'Coords'.
Object literal may only specify known properties, and 'x' does not exist in type 'Coords'.
d.ts(2,14): error TS2339: Property 'x' does not exist on type 'Coords'.
12:00:50 AM - Found 2 errors. Watching for file changes.
Program root files: ["/user/username/projects/myproject/a.ts","/user/username/projects/myproject/b.ts","/user/username/projects/myproject/c.ts","/user/username/projects/myproject/d.ts","/user/username/projects/myproject/e.ts"]
Program options: {"assumeChangesOnlyAffectDirectDependencies":true,"declaration":true,"watch":true,"configFilePath":"/user/username/projects/myproject/tsconfig.json"}
Program files::
/a/lib/lib.d.ts
/user/username/projects/myproject/a.ts
/user/username/projects/myproject/b.ts
/user/username/projects/myproject/c.ts
/user/username/projects/myproject/d.ts
/user/username/projects/myproject/e.ts
Semantic diagnostics in builder refreshed for::
/a/lib/lib.d.ts
/user/username/projects/myproject/a.ts
/user/username/projects/myproject/b.ts
/user/username/projects/myproject/c.ts
/user/username/projects/myproject/d.ts
/user/username/projects/myproject/e.ts
WatchedFiles::
/user/username/projects/myproject/tsconfig.json:
{"pollingInterval":250}
/user/username/projects/myproject/a.ts:
{"pollingInterval":250}
/user/username/projects/myproject/b.ts:
{"pollingInterval":250}
/user/username/projects/myproject/c.ts:
{"pollingInterval":250}
/user/username/projects/myproject/d.ts:
{"pollingInterval":250}
/user/username/projects/myproject/e.ts:
{"pollingInterval":250}
/a/lib/lib.d.ts:
{"pollingInterval":250}
FsWatches::
FsWatchesRecursive::
/user/username/projects/myproject/node_modules/@types:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
/user/username/projects/myproject:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
exitCode:: ExitStatus.undefined
Change:: Rename property x2 to x of interface Coords
//// [/user/username/projects/myproject/a.ts]
export interface Point {
name: string;
c: Coords;
}
export interface Coords {
x: number;
y: number;
}
//// [/user/username/projects/myproject/a.js] file written with same contents
//// [/user/username/projects/myproject/a.d.ts]
export interface Point {
name: string;
c: Coords;
}
export interface Coords {
x: number;
y: number;
}
//// [/user/username/projects/myproject/b.js] file written with same contents
//// [/user/username/projects/myproject/b.d.ts] file written with same contents
Output::
>> Screen clear
12:00:54 AM - File change detected. Starting incremental compilation...
c.ts(6,13): error TS2322: Type '{ x: number; y: number; }' is not assignable to type 'Coords'.
Object literal may only specify known properties, and 'x' does not exist in type 'Coords'.
d.ts(2,14): error TS2339: Property 'x' does not exist on type 'Coords'.
12:01:07 AM - Found 2 errors. Watching for file changes.
Program root files: ["/user/username/projects/myproject/a.ts","/user/username/projects/myproject/b.ts","/user/username/projects/myproject/c.ts","/user/username/projects/myproject/d.ts","/user/username/projects/myproject/e.ts"]
Program options: {"assumeChangesOnlyAffectDirectDependencies":true,"declaration":true,"watch":true,"configFilePath":"/user/username/projects/myproject/tsconfig.json"}
Program files::
/a/lib/lib.d.ts
/user/username/projects/myproject/a.ts
/user/username/projects/myproject/b.ts
/user/username/projects/myproject/c.ts
/user/username/projects/myproject/d.ts
/user/username/projects/myproject/e.ts
Semantic diagnostics in builder refreshed for::
/user/username/projects/myproject/a.ts
/user/username/projects/myproject/b.ts
WatchedFiles::
/user/username/projects/myproject/tsconfig.json:
{"pollingInterval":250}
/user/username/projects/myproject/a.ts:
{"pollingInterval":250}
/user/username/projects/myproject/b.ts:
{"pollingInterval":250}
/user/username/projects/myproject/c.ts:
{"pollingInterval":250}
/user/username/projects/myproject/d.ts:
{"pollingInterval":250}
/user/username/projects/myproject/e.ts:
{"pollingInterval":250}
/a/lib/lib.d.ts:
{"pollingInterval":250}
FsWatches::
FsWatchesRecursive::
/user/username/projects/myproject/node_modules/@types:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
/user/username/projects/myproject:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
exitCode:: ExitStatus.undefined
@@ -0,0 +1,290 @@
/a/lib/tsc.js --w
//// [/user/username/projects/myproject/lib1/tools/tools.interface.ts]
export interface ITest {
title: string;
}
//// [/user/username/projects/myproject/lib1/tools/public.ts]
export * from "./tools.interface";
//// [/user/username/projects/myproject/app.ts]
import { Data } from "lib2/public";
export class App {
public constructor() {
new Data().test();
}
}
//// [/user/username/projects/myproject/lib2/public.ts]
export * from "./data";
//// [/user/username/projects/myproject/lib1/public.ts]
export * from "./tools/public";
//// [/user/username/projects/myproject/lib2/data.ts]
import { ITest } from "lib1/public"; import { Data2 } from "./data2";
export class Data {
public dat?: Data2; public test() {
const result: ITest = {
title: "title"
}
return result;
}
}
//// [/user/username/projects/myproject/lib2/data2.ts]
import { Data } from "./data";
export class Data2 {
public dat?: Data;
}
//// [/user/username/projects/myproject/tsconfig.json]
{"files":["app.ts"],"compilerOptions":{"baseUrl":".","assumeChangesOnlyAffectDirectDependencies":true,"declaration":true}}
//// [/a/lib/lib.d.ts]
/// <reference no-default-lib="true"/>
interface Boolean {}
interface Function {}
interface CallableFunction {}
interface NewableFunction {}
interface IArguments {}
interface Number { toExponential: any; }
interface Object {}
interface RegExp {}
interface String { charAt: any; }
interface Array<T> { length: number; [n: number]: T; }
//// [/user/username/projects/myproject/lib1/tools/tools.interface.js]
"use strict";
exports.__esModule = true;
//// [/user/username/projects/myproject/lib1/tools/tools.interface.d.ts]
export interface ITest {
title: string;
}
//// [/user/username/projects/myproject/lib1/tools/public.js]
"use strict";
exports.__esModule = true;
//// [/user/username/projects/myproject/lib1/tools/public.d.ts]
export * from "./tools.interface";
//// [/user/username/projects/myproject/lib1/public.js]
"use strict";
exports.__esModule = true;
//// [/user/username/projects/myproject/lib1/public.d.ts]
export * from "./tools/public";
//// [/user/username/projects/myproject/lib2/data2.js]
"use strict";
exports.__esModule = true;
var Data2 = /** @class */ (function () {
function Data2() {
}
return Data2;
}());
exports.Data2 = Data2;
//// [/user/username/projects/myproject/lib2/data2.d.ts]
import { Data } from "./data";
export declare class Data2 {
dat?: Data;
}
//// [/user/username/projects/myproject/lib2/data.js]
"use strict";
exports.__esModule = true;
var Data = /** @class */ (function () {
function Data() {
}
Data.prototype.test = function () {
var result = {
title: "title"
};
return result;
};
return Data;
}());
exports.Data = Data;
//// [/user/username/projects/myproject/lib2/data.d.ts]
import { ITest } from "lib1/public";
import { Data2 } from "./data2";
export declare class Data {
dat?: Data2;
test(): ITest;
}
//// [/user/username/projects/myproject/lib2/public.js]
"use strict";
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
exports.__esModule = true;
__export(require("./data"));
//// [/user/username/projects/myproject/lib2/public.d.ts]
export * from "./data";
//// [/user/username/projects/myproject/app.js]
"use strict";
exports.__esModule = true;
var public_1 = require("lib2/public");
var App = /** @class */ (function () {
function App() {
new public_1.Data().test();
}
return App;
}());
exports.App = App;
//// [/user/username/projects/myproject/app.d.ts]
export declare class App {
constructor();
}
Output::
>> Screen clear
12:00:39 AM - Starting compilation in watch mode...
12:01:08 AM - Found 0 errors. Watching for file changes.
Program root files: ["/user/username/projects/myproject/app.ts"]
Program options: {"baseUrl":"/user/username/projects/myproject","assumeChangesOnlyAffectDirectDependencies":true,"declaration":true,"watch":true,"configFilePath":"/user/username/projects/myproject/tsconfig.json"}
Program files::
/a/lib/lib.d.ts
/user/username/projects/myproject/lib1/tools/tools.interface.ts
/user/username/projects/myproject/lib1/tools/public.ts
/user/username/projects/myproject/lib1/public.ts
/user/username/projects/myproject/lib2/data2.ts
/user/username/projects/myproject/lib2/data.ts
/user/username/projects/myproject/lib2/public.ts
/user/username/projects/myproject/app.ts
Semantic diagnostics in builder refreshed for::
/a/lib/lib.d.ts
/user/username/projects/myproject/lib1/tools/tools.interface.ts
/user/username/projects/myproject/lib1/tools/public.ts
/user/username/projects/myproject/lib1/public.ts
/user/username/projects/myproject/lib2/data2.ts
/user/username/projects/myproject/lib2/data.ts
/user/username/projects/myproject/lib2/public.ts
/user/username/projects/myproject/app.ts
WatchedFiles::
/user/username/projects/myproject/tsconfig.json:
{"pollingInterval":250}
/user/username/projects/myproject/app.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib2/public.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib2/data.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib1/public.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib1/tools/public.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib1/tools/tools.interface.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib2/data2.ts:
{"pollingInterval":250}
/a/lib/lib.d.ts:
{"pollingInterval":250}
FsWatches::
FsWatchesRecursive::
/user/username/projects/myproject/node_modules/@types:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
exitCode:: ExitStatus.undefined
Change:: Rename property title to title2 of interface ITest
//// [/user/username/projects/myproject/lib1/tools/tools.interface.ts]
export interface ITest {
title2: string;
}
//// [/user/username/projects/myproject/lib1/tools/tools.interface.js] file written with same contents
//// [/user/username/projects/myproject/lib1/tools/tools.interface.d.ts]
export interface ITest {
title2: string;
}
//// [/user/username/projects/myproject/lib1/tools/public.js] file written with same contents
//// [/user/username/projects/myproject/lib1/tools/public.d.ts] file written with same contents
Output::
>> Screen clear
12:01:12 AM - File change detected. Starting incremental compilation...
12:01:25 AM - Found 0 errors. Watching for file changes.
Program root files: ["/user/username/projects/myproject/app.ts"]
Program options: {"baseUrl":"/user/username/projects/myproject","assumeChangesOnlyAffectDirectDependencies":true,"declaration":true,"watch":true,"configFilePath":"/user/username/projects/myproject/tsconfig.json"}
Program files::
/a/lib/lib.d.ts
/user/username/projects/myproject/lib1/tools/tools.interface.ts
/user/username/projects/myproject/lib1/tools/public.ts
/user/username/projects/myproject/lib1/public.ts
/user/username/projects/myproject/lib2/data2.ts
/user/username/projects/myproject/lib2/data.ts
/user/username/projects/myproject/lib2/public.ts
/user/username/projects/myproject/app.ts
Semantic diagnostics in builder refreshed for::
/user/username/projects/myproject/lib1/tools/tools.interface.ts
/user/username/projects/myproject/lib1/tools/public.ts
WatchedFiles::
/user/username/projects/myproject/tsconfig.json:
{"pollingInterval":250}
/user/username/projects/myproject/app.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib2/public.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib2/data.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib1/public.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib1/tools/public.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib1/tools/tools.interface.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib2/data2.ts:
{"pollingInterval":250}
/a/lib/lib.d.ts:
{"pollingInterval":250}
FsWatches::
FsWatchesRecursive::
/user/username/projects/myproject/node_modules/@types:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
exitCode:: ExitStatus.undefined
@@ -0,0 +1,257 @@
/a/lib/tsc.js --w
//// [/user/username/projects/myproject/lib1/tools/tools.interface.ts]
export interface ITest {
title: string;
}
//// [/user/username/projects/myproject/lib1/tools/public.ts]
export * from "./tools.interface";
//// [/user/username/projects/myproject/app.ts]
import { Data } from "lib2/public";
export class App {
public constructor() {
new Data().test();
}
}
//// [/user/username/projects/myproject/lib2/public.ts]
export * from "./data";
//// [/user/username/projects/myproject/lib1/public.ts]
export * from "./tools/public";
//// [/user/username/projects/myproject/lib2/data.ts]
import { ITest } from "lib1/public";
export class Data {
public test() {
const result: ITest = {
title: "title"
}
return result;
}
}
//// [/user/username/projects/myproject/tsconfig.json]
{"files":["app.ts"],"compilerOptions":{"baseUrl":".","assumeChangesOnlyAffectDirectDependencies":true,"declaration":true}}
//// [/a/lib/lib.d.ts]
/// <reference no-default-lib="true"/>
interface Boolean {}
interface Function {}
interface CallableFunction {}
interface NewableFunction {}
interface IArguments {}
interface Number { toExponential: any; }
interface Object {}
interface RegExp {}
interface String { charAt: any; }
interface Array<T> { length: number; [n: number]: T; }
//// [/user/username/projects/myproject/lib1/tools/tools.interface.js]
"use strict";
exports.__esModule = true;
//// [/user/username/projects/myproject/lib1/tools/tools.interface.d.ts]
export interface ITest {
title: string;
}
//// [/user/username/projects/myproject/lib1/tools/public.js]
"use strict";
exports.__esModule = true;
//// [/user/username/projects/myproject/lib1/tools/public.d.ts]
export * from "./tools.interface";
//// [/user/username/projects/myproject/lib1/public.js]
"use strict";
exports.__esModule = true;
//// [/user/username/projects/myproject/lib1/public.d.ts]
export * from "./tools/public";
//// [/user/username/projects/myproject/lib2/data.js]
"use strict";
exports.__esModule = true;
var Data = /** @class */ (function () {
function Data() {
}
Data.prototype.test = function () {
var result = {
title: "title"
};
return result;
};
return Data;
}());
exports.Data = Data;
//// [/user/username/projects/myproject/lib2/data.d.ts]
import { ITest } from "lib1/public";
export declare class Data {
test(): ITest;
}
//// [/user/username/projects/myproject/lib2/public.js]
"use strict";
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
exports.__esModule = true;
__export(require("./data"));
//// [/user/username/projects/myproject/lib2/public.d.ts]
export * from "./data";
//// [/user/username/projects/myproject/app.js]
"use strict";
exports.__esModule = true;
var public_1 = require("lib2/public");
var App = /** @class */ (function () {
function App() {
new public_1.Data().test();
}
return App;
}());
exports.App = App;
//// [/user/username/projects/myproject/app.d.ts]
export declare class App {
constructor();
}
Output::
>> Screen clear
12:00:37 AM - Starting compilation in watch mode...
12:01:02 AM - Found 0 errors. Watching for file changes.
Program root files: ["/user/username/projects/myproject/app.ts"]
Program options: {"baseUrl":"/user/username/projects/myproject","assumeChangesOnlyAffectDirectDependencies":true,"declaration":true,"watch":true,"configFilePath":"/user/username/projects/myproject/tsconfig.json"}
Program files::
/a/lib/lib.d.ts
/user/username/projects/myproject/lib1/tools/tools.interface.ts
/user/username/projects/myproject/lib1/tools/public.ts
/user/username/projects/myproject/lib1/public.ts
/user/username/projects/myproject/lib2/data.ts
/user/username/projects/myproject/lib2/public.ts
/user/username/projects/myproject/app.ts
Semantic diagnostics in builder refreshed for::
/a/lib/lib.d.ts
/user/username/projects/myproject/lib1/tools/tools.interface.ts
/user/username/projects/myproject/lib1/tools/public.ts
/user/username/projects/myproject/lib1/public.ts
/user/username/projects/myproject/lib2/data.ts
/user/username/projects/myproject/lib2/public.ts
/user/username/projects/myproject/app.ts
WatchedFiles::
/user/username/projects/myproject/tsconfig.json:
{"pollingInterval":250}
/user/username/projects/myproject/app.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib2/public.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib2/data.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib1/public.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib1/tools/public.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib1/tools/tools.interface.ts:
{"pollingInterval":250}
/a/lib/lib.d.ts:
{"pollingInterval":250}
FsWatches::
FsWatchesRecursive::
/user/username/projects/myproject/node_modules/@types:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
exitCode:: ExitStatus.undefined
Change:: Rename property title to title2 of interface ITest
//// [/user/username/projects/myproject/lib1/tools/tools.interface.ts]
export interface ITest {
title2: string;
}
//// [/user/username/projects/myproject/lib1/tools/tools.interface.js] file written with same contents
//// [/user/username/projects/myproject/lib1/tools/tools.interface.d.ts]
export interface ITest {
title2: string;
}
//// [/user/username/projects/myproject/lib1/tools/public.js] file written with same contents
//// [/user/username/projects/myproject/lib1/tools/public.d.ts] file written with same contents
Output::
>> Screen clear
12:01:06 AM - File change detected. Starting incremental compilation...
12:01:19 AM - Found 0 errors. Watching for file changes.
Program root files: ["/user/username/projects/myproject/app.ts"]
Program options: {"baseUrl":"/user/username/projects/myproject","assumeChangesOnlyAffectDirectDependencies":true,"declaration":true,"watch":true,"configFilePath":"/user/username/projects/myproject/tsconfig.json"}
Program files::
/a/lib/lib.d.ts
/user/username/projects/myproject/lib1/tools/tools.interface.ts
/user/username/projects/myproject/lib1/tools/public.ts
/user/username/projects/myproject/lib1/public.ts
/user/username/projects/myproject/lib2/data.ts
/user/username/projects/myproject/lib2/public.ts
/user/username/projects/myproject/app.ts
Semantic diagnostics in builder refreshed for::
/user/username/projects/myproject/lib1/tools/tools.interface.ts
/user/username/projects/myproject/lib1/tools/public.ts
WatchedFiles::
/user/username/projects/myproject/tsconfig.json:
{"pollingInterval":250}
/user/username/projects/myproject/app.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib2/public.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib2/data.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib1/public.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib1/tools/public.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib1/tools/tools.interface.ts:
{"pollingInterval":250}
/a/lib/lib.d.ts:
{"pollingInterval":250}
FsWatches::
FsWatchesRecursive::
/user/username/projects/myproject/node_modules/@types:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
exitCode:: ExitStatus.undefined
@@ -0,0 +1,165 @@
/a/lib/tsc.js --w
//// [/user/username/projects/noEmitOnError/shared/types/db.ts]
export interface A {
name: string;
}
//// [/user/username/projects/noEmitOnError/src/main.ts]
import { A } from "../shared/types/db";
const a = {
lastName: 'sdsd'
;
//// [/user/username/projects/noEmitOnError/src/other.ts]
console.log("hi");
export { }
//// [/user/username/projects/noEmitOnError/tsconfig.json]
{"compilerOptions":{"outDir":"./dev-build","noEmitOnError":true,"assumeChangesOnlyAffectDirectDependencies":true,"declaration":true}}
//// [/a/lib/lib.d.ts]
/// <reference no-default-lib="true"/>
interface Boolean {}
interface Function {}
interface CallableFunction {}
interface NewableFunction {}
interface IArguments {}
interface Number { toExponential: any; }
interface Object {}
interface RegExp {}
interface String { charAt: any; }
interface Array<T> { length: number; [n: number]: T; }
interface ReadonlyArray<T> {}
declare const console: { log(msg: any): void; };
Output::
>> Screen clear
12:00:31 AM - Starting compilation in watch mode...
src/main.ts(4,1): error TS1005: ',' expected.
12:00:32 AM - Found 1 error. Watching for file changes.
Program root files: ["/user/username/projects/noEmitOnError/shared/types/db.ts","/user/username/projects/noEmitOnError/src/main.ts","/user/username/projects/noEmitOnError/src/other.ts"]
Program options: {"outDir":"/user/username/projects/noEmitOnError/dev-build","noEmitOnError":true,"assumeChangesOnlyAffectDirectDependencies":true,"declaration":true,"watch":true,"configFilePath":"/user/username/projects/noEmitOnError/tsconfig.json"}
Program files::
/a/lib/lib.d.ts
/user/username/projects/noEmitOnError/shared/types/db.ts
/user/username/projects/noEmitOnError/src/main.ts
/user/username/projects/noEmitOnError/src/other.ts
Semantic diagnostics in builder refreshed for::
/a/lib/lib.d.ts
/user/username/projects/noEmitOnError/shared/types/db.ts
/user/username/projects/noEmitOnError/src/main.ts
/user/username/projects/noEmitOnError/src/other.ts
WatchedFiles::
/user/username/projects/noemitonerror/tsconfig.json:
{"pollingInterval":250}
/user/username/projects/noemitonerror/shared/types/db.ts:
{"pollingInterval":250}
/user/username/projects/noemitonerror/src/main.ts:
{"pollingInterval":250}
/user/username/projects/noemitonerror/src/other.ts:
{"pollingInterval":250}
/a/lib/lib.d.ts:
{"pollingInterval":250}
FsWatches::
FsWatchesRecursive::
/user/username/projects/noemitonerror/node_modules/@types:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
/user/username/projects/noemitonerror:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
exitCode:: ExitStatus.undefined
Change:: Fix the error
//// [/user/username/projects/noEmitOnError/src/main.ts]
import { A } from "../shared/types/db";
const a = {
lastName: 'sdsd'
};
//// [/user/username/projects/noEmitOnError/dev-build/shared/types/db.js]
"use strict";
exports.__esModule = true;
//// [/user/username/projects/noEmitOnError/dev-build/shared/types/db.d.ts]
export interface A {
name: string;
}
//// [/user/username/projects/noEmitOnError/dev-build/src/main.js]
"use strict";
exports.__esModule = true;
var a = {
lastName: 'sdsd'
};
//// [/user/username/projects/noEmitOnError/dev-build/src/main.d.ts]
export {};
//// [/user/username/projects/noEmitOnError/dev-build/src/other.js]
"use strict";
exports.__esModule = true;
console.log("hi");
//// [/user/username/projects/noEmitOnError/dev-build/src/other.d.ts]
export {};
Output::
>> Screen clear
12:00:36 AM - File change detected. Starting incremental compilation...
12:00:59 AM - Found 0 errors. Watching for file changes.
Program root files: ["/user/username/projects/noEmitOnError/shared/types/db.ts","/user/username/projects/noEmitOnError/src/main.ts","/user/username/projects/noEmitOnError/src/other.ts"]
Program options: {"outDir":"/user/username/projects/noEmitOnError/dev-build","noEmitOnError":true,"assumeChangesOnlyAffectDirectDependencies":true,"declaration":true,"watch":true,"configFilePath":"/user/username/projects/noEmitOnError/tsconfig.json"}
Program files::
/a/lib/lib.d.ts
/user/username/projects/noEmitOnError/shared/types/db.ts
/user/username/projects/noEmitOnError/src/main.ts
/user/username/projects/noEmitOnError/src/other.ts
Semantic diagnostics in builder refreshed for::
/user/username/projects/noEmitOnError/src/main.ts
WatchedFiles::
/user/username/projects/noemitonerror/tsconfig.json:
{"pollingInterval":250}
/user/username/projects/noemitonerror/shared/types/db.ts:
{"pollingInterval":250}
/user/username/projects/noemitonerror/src/main.ts:
{"pollingInterval":250}
/user/username/projects/noemitonerror/src/other.ts:
{"pollingInterval":250}
/a/lib/lib.d.ts:
{"pollingInterval":250}
FsWatches::
FsWatchesRecursive::
/user/username/projects/noemitonerror/node_modules/@types:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
/user/username/projects/noemitonerror:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
exitCode:: ExitStatus.undefined
@@ -0,0 +1,179 @@
/a/lib/tsc.js --w
//// [/user/username/projects/myproject/a.ts]
import {B} from './b';
declare var console: any;
let b = new B();
console.log(b.c.d);
//// [/user/username/projects/myproject/b.ts]
import {C} from './c';
export class B
{
c = new C();
}
//// [/user/username/projects/myproject/c.ts]
export class C
{
d = 1;
}
//// [/user/username/projects/myproject/tsconfig.json]
{"compilerOptions":{"assumeChangesOnlyAffectDirectDependencies":true}}
//// [/a/lib/lib.d.ts]
/// <reference no-default-lib="true"/>
interface Boolean {}
interface Function {}
interface CallableFunction {}
interface NewableFunction {}
interface IArguments {}
interface Number { toExponential: any; }
interface Object {}
interface RegExp {}
interface String { charAt: any; }
interface Array<T> { length: number; [n: number]: T; }
//// [/user/username/projects/myproject/c.js]
"use strict";
exports.__esModule = true;
var C = /** @class */ (function () {
function C() {
this.d = 1;
}
return C;
}());
exports.C = C;
//// [/user/username/projects/myproject/b.js]
"use strict";
exports.__esModule = true;
var c_1 = require("./c");
var B = /** @class */ (function () {
function B() {
this.c = new c_1.C();
}
return B;
}());
exports.B = B;
//// [/user/username/projects/myproject/a.js]
"use strict";
exports.__esModule = true;
var b_1 = require("./b");
var b = new b_1.B();
console.log(b.c.d);
Output::
>> Screen clear
12:00:25 AM - Starting compilation in watch mode...
12:00:32 AM - Found 0 errors. Watching for file changes.
Program root files: ["/user/username/projects/myproject/a.ts","/user/username/projects/myproject/b.ts","/user/username/projects/myproject/c.ts"]
Program options: {"assumeChangesOnlyAffectDirectDependencies":true,"watch":true,"configFilePath":"/user/username/projects/myproject/tsconfig.json"}
Program files::
/a/lib/lib.d.ts
/user/username/projects/myproject/c.ts
/user/username/projects/myproject/b.ts
/user/username/projects/myproject/a.ts
Semantic diagnostics in builder refreshed for::
/a/lib/lib.d.ts
/user/username/projects/myproject/c.ts
/user/username/projects/myproject/b.ts
/user/username/projects/myproject/a.ts
WatchedFiles::
/user/username/projects/myproject/tsconfig.json:
{"pollingInterval":250}
/user/username/projects/myproject/a.ts:
{"pollingInterval":250}
/user/username/projects/myproject/b.ts:
{"pollingInterval":250}
/user/username/projects/myproject/c.ts:
{"pollingInterval":250}
/a/lib/lib.d.ts:
{"pollingInterval":250}
FsWatches::
FsWatchesRecursive::
/user/username/projects/myproject/node_modules/@types:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
/user/username/projects/myproject:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
exitCode:: ExitStatus.undefined
Change:: Rename property d to d2 of class C
//// [/user/username/projects/myproject/c.ts]
export class C
{
d2 = 1;
}
//// [/user/username/projects/myproject/c.js]
"use strict";
exports.__esModule = true;
var C = /** @class */ (function () {
function C() {
this.d2 = 1;
}
return C;
}());
exports.C = C;
//// [/user/username/projects/myproject/b.js] file written with same contents
Output::
>> Screen clear
12:00:36 AM - File change detected. Starting incremental compilation...
12:00:43 AM - Found 0 errors. Watching for file changes.
Program root files: ["/user/username/projects/myproject/a.ts","/user/username/projects/myproject/b.ts","/user/username/projects/myproject/c.ts"]
Program options: {"assumeChangesOnlyAffectDirectDependencies":true,"watch":true,"configFilePath":"/user/username/projects/myproject/tsconfig.json"}
Program files::
/a/lib/lib.d.ts
/user/username/projects/myproject/c.ts
/user/username/projects/myproject/b.ts
/user/username/projects/myproject/a.ts
Semantic diagnostics in builder refreshed for::
/user/username/projects/myproject/c.ts
/user/username/projects/myproject/b.ts
WatchedFiles::
/user/username/projects/myproject/tsconfig.json:
{"pollingInterval":250}
/user/username/projects/myproject/a.ts:
{"pollingInterval":250}
/user/username/projects/myproject/b.ts:
{"pollingInterval":250}
/user/username/projects/myproject/c.ts:
{"pollingInterval":250}
/a/lib/lib.d.ts:
{"pollingInterval":250}
FsWatches::
FsWatchesRecursive::
/user/username/projects/myproject/node_modules/@types:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
/user/username/projects/myproject:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
exitCode:: ExitStatus.undefined
@@ -0,0 +1,145 @@
/a/lib/tsc.js --w
//// [/user/username/projects/myproject/a.ts]
import {B} from './b';
declare var console: any;
let b = new B();
console.log(b.c.d);
//// [/user/username/projects/myproject/b.d.ts]
import {C} from './c';
export class B
{
c: C;
}
//// [/user/username/projects/myproject/c.d.ts]
export class C
{
d: number;
}
//// [/user/username/projects/myproject/tsconfig.json]
{"compilerOptions":{"assumeChangesOnlyAffectDirectDependencies":true}}
//// [/a/lib/lib.d.ts]
/// <reference no-default-lib="true"/>
interface Boolean {}
interface Function {}
interface CallableFunction {}
interface NewableFunction {}
interface IArguments {}
interface Number { toExponential: any; }
interface Object {}
interface RegExp {}
interface String { charAt: any; }
interface Array<T> { length: number; [n: number]: T; }
//// [/user/username/projects/myproject/a.js]
"use strict";
exports.__esModule = true;
var b_1 = require("./b");
var b = new b_1.B();
console.log(b.c.d);
Output::
>> Screen clear
12:00:25 AM - Starting compilation in watch mode...
12:00:28 AM - Found 0 errors. Watching for file changes.
Program root files: ["/user/username/projects/myproject/a.ts","/user/username/projects/myproject/b.d.ts","/user/username/projects/myproject/c.d.ts"]
Program options: {"assumeChangesOnlyAffectDirectDependencies":true,"watch":true,"configFilePath":"/user/username/projects/myproject/tsconfig.json"}
Program files::
/a/lib/lib.d.ts
/user/username/projects/myproject/c.d.ts
/user/username/projects/myproject/b.d.ts
/user/username/projects/myproject/a.ts
Semantic diagnostics in builder refreshed for::
/a/lib/lib.d.ts
/user/username/projects/myproject/c.d.ts
/user/username/projects/myproject/b.d.ts
/user/username/projects/myproject/a.ts
WatchedFiles::
/user/username/projects/myproject/tsconfig.json:
{"pollingInterval":250}
/user/username/projects/myproject/a.ts:
{"pollingInterval":250}
/user/username/projects/myproject/b.d.ts:
{"pollingInterval":250}
/user/username/projects/myproject/c.d.ts:
{"pollingInterval":250}
/a/lib/lib.d.ts:
{"pollingInterval":250}
FsWatches::
/user/username/projects/myproject:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
FsWatchesRecursive::
/user/username/projects/myproject/node_modules/@types:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
/user/username/projects/myproject:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
exitCode:: ExitStatus.undefined
Change:: Rename property d to d2 of class C
//// [/user/username/projects/myproject/c.d.ts]
export class C
{
d2: number;
}
Output::
>> Screen clear
12:00:32 AM - File change detected. Starting incremental compilation...
12:00:33 AM - Found 0 errors. Watching for file changes.
Program root files: ["/user/username/projects/myproject/a.ts","/user/username/projects/myproject/b.d.ts","/user/username/projects/myproject/c.d.ts"]
Program options: {"assumeChangesOnlyAffectDirectDependencies":true,"watch":true,"configFilePath":"/user/username/projects/myproject/tsconfig.json"}
Program files::
/a/lib/lib.d.ts
/user/username/projects/myproject/c.d.ts
/user/username/projects/myproject/b.d.ts
/user/username/projects/myproject/a.ts
Semantic diagnostics in builder refreshed for::
/user/username/projects/myproject/c.d.ts
/user/username/projects/myproject/b.d.ts
WatchedFiles::
/user/username/projects/myproject/tsconfig.json:
{"pollingInterval":250}
/user/username/projects/myproject/a.ts:
{"pollingInterval":250}
/user/username/projects/myproject/b.d.ts:
{"pollingInterval":250}
/user/username/projects/myproject/c.d.ts:
{"pollingInterval":250}
/a/lib/lib.d.ts:
{"pollingInterval":250}
FsWatches::
/user/username/projects/myproject:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
FsWatchesRecursive::
/user/username/projects/myproject/node_modules/@types:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
/user/username/projects/myproject:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
exitCode:: ExitStatus.undefined
@@ -0,0 +1,217 @@
/a/lib/tsc.js --w
//// [/user/username/projects/myproject/a.ts]
export interface Point {
name: string;
c: Coords;
}
export interface Coords {
x2: number;
y: number;
}
//// [/user/username/projects/myproject/b.ts]
import { Point } from "./a";
export interface PointWrapper extends Point {
}
//// [/user/username/projects/myproject/c.ts]
import { PointWrapper } from "./b";
export function getPoint(): PointWrapper {
return {
name: "test",
c: {
x: 1,
y: 2
}
}
};
//// [/user/username/projects/myproject/d.ts]
import { getPoint } from "./c";
getPoint().c.x;
//// [/user/username/projects/myproject/e.ts]
import "./d";
//// [/user/username/projects/myproject/tsconfig.json]
{"compilerOptions":{"assumeChangesOnlyAffectDirectDependencies":true}}
//// [/a/lib/lib.d.ts]
/// <reference no-default-lib="true"/>
interface Boolean {}
interface Function {}
interface CallableFunction {}
interface NewableFunction {}
interface IArguments {}
interface Number { toExponential: any; }
interface Object {}
interface RegExp {}
interface String { charAt: any; }
interface Array<T> { length: number; [n: number]: T; }
//// [/user/username/projects/myproject/a.js]
"use strict";
exports.__esModule = true;
//// [/user/username/projects/myproject/b.js]
"use strict";
exports.__esModule = true;
//// [/user/username/projects/myproject/c.js]
"use strict";
exports.__esModule = true;
function getPoint() {
return {
name: "test",
c: {
x: 1,
y: 2
}
};
}
exports.getPoint = getPoint;
;
//// [/user/username/projects/myproject/d.js]
"use strict";
exports.__esModule = true;
var c_1 = require("./c");
c_1.getPoint().c.x;
//// [/user/username/projects/myproject/e.js]
"use strict";
exports.__esModule = true;
require("./d");
Output::
>> Screen clear
12:00:29 AM - Starting compilation in watch mode...
c.ts(6,13): error TS2322: Type '{ x: number; y: number; }' is not assignable to type 'Coords'.
Object literal may only specify known properties, and 'x' does not exist in type 'Coords'.
d.ts(2,14): error TS2339: Property 'x' does not exist on type 'Coords'.
12:00:40 AM - Found 2 errors. Watching for file changes.
Program root files: ["/user/username/projects/myproject/a.ts","/user/username/projects/myproject/b.ts","/user/username/projects/myproject/c.ts","/user/username/projects/myproject/d.ts","/user/username/projects/myproject/e.ts"]
Program options: {"assumeChangesOnlyAffectDirectDependencies":true,"watch":true,"configFilePath":"/user/username/projects/myproject/tsconfig.json"}
Program files::
/a/lib/lib.d.ts
/user/username/projects/myproject/a.ts
/user/username/projects/myproject/b.ts
/user/username/projects/myproject/c.ts
/user/username/projects/myproject/d.ts
/user/username/projects/myproject/e.ts
Semantic diagnostics in builder refreshed for::
/a/lib/lib.d.ts
/user/username/projects/myproject/a.ts
/user/username/projects/myproject/b.ts
/user/username/projects/myproject/c.ts
/user/username/projects/myproject/d.ts
/user/username/projects/myproject/e.ts
WatchedFiles::
/user/username/projects/myproject/tsconfig.json:
{"pollingInterval":250}
/user/username/projects/myproject/a.ts:
{"pollingInterval":250}
/user/username/projects/myproject/b.ts:
{"pollingInterval":250}
/user/username/projects/myproject/c.ts:
{"pollingInterval":250}
/user/username/projects/myproject/d.ts:
{"pollingInterval":250}
/user/username/projects/myproject/e.ts:
{"pollingInterval":250}
/a/lib/lib.d.ts:
{"pollingInterval":250}
FsWatches::
FsWatchesRecursive::
/user/username/projects/myproject/node_modules/@types:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
/user/username/projects/myproject:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
exitCode:: ExitStatus.undefined
Change:: Rename property x2 to x of interface Coords
//// [/user/username/projects/myproject/a.ts]
export interface Point {
name: string;
c: Coords;
}
export interface Coords {
x: number;
y: number;
}
//// [/user/username/projects/myproject/a.js] file written with same contents
//// [/user/username/projects/myproject/b.js] file written with same contents
Output::
>> Screen clear
12:00:44 AM - File change detected. Starting incremental compilation...
c.ts(6,13): error TS2322: Type '{ x: number; y: number; }' is not assignable to type 'Coords'.
Object literal may only specify known properties, and 'x' does not exist in type 'Coords'.
d.ts(2,14): error TS2339: Property 'x' does not exist on type 'Coords'.
12:00:51 AM - Found 2 errors. Watching for file changes.
Program root files: ["/user/username/projects/myproject/a.ts","/user/username/projects/myproject/b.ts","/user/username/projects/myproject/c.ts","/user/username/projects/myproject/d.ts","/user/username/projects/myproject/e.ts"]
Program options: {"assumeChangesOnlyAffectDirectDependencies":true,"watch":true,"configFilePath":"/user/username/projects/myproject/tsconfig.json"}
Program files::
/a/lib/lib.d.ts
/user/username/projects/myproject/a.ts
/user/username/projects/myproject/b.ts
/user/username/projects/myproject/c.ts
/user/username/projects/myproject/d.ts
/user/username/projects/myproject/e.ts
Semantic diagnostics in builder refreshed for::
/user/username/projects/myproject/a.ts
/user/username/projects/myproject/b.ts
WatchedFiles::
/user/username/projects/myproject/tsconfig.json:
{"pollingInterval":250}
/user/username/projects/myproject/a.ts:
{"pollingInterval":250}
/user/username/projects/myproject/b.ts:
{"pollingInterval":250}
/user/username/projects/myproject/c.ts:
{"pollingInterval":250}
/user/username/projects/myproject/d.ts:
{"pollingInterval":250}
/user/username/projects/myproject/e.ts:
{"pollingInterval":250}
/a/lib/lib.d.ts:
{"pollingInterval":250}
FsWatches::
FsWatchesRecursive::
/user/username/projects/myproject/node_modules/@types:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
/user/username/projects/myproject:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
exitCode:: ExitStatus.undefined
@@ -0,0 +1,243 @@
/a/lib/tsc.js --w
//// [/user/username/projects/myproject/lib1/tools/tools.interface.ts]
export interface ITest {
title: string;
}
//// [/user/username/projects/myproject/lib1/tools/public.ts]
export * from "./tools.interface";
//// [/user/username/projects/myproject/app.ts]
import { Data } from "lib2/public";
export class App {
public constructor() {
new Data().test();
}
}
//// [/user/username/projects/myproject/lib2/public.ts]
export * from "./data";
//// [/user/username/projects/myproject/lib1/public.ts]
export * from "./tools/public";
//// [/user/username/projects/myproject/lib2/data.ts]
import { ITest } from "lib1/public"; import { Data2 } from "./data2";
export class Data {
public dat?: Data2; public test() {
const result: ITest = {
title: "title"
}
return result;
}
}
//// [/user/username/projects/myproject/lib2/data2.ts]
import { Data } from "./data";
export class Data2 {
public dat?: Data;
}
//// [/user/username/projects/myproject/tsconfig.json]
{"files":["app.ts"],"compilerOptions":{"baseUrl":".","assumeChangesOnlyAffectDirectDependencies":true}}
//// [/a/lib/lib.d.ts]
/// <reference no-default-lib="true"/>
interface Boolean {}
interface Function {}
interface CallableFunction {}
interface NewableFunction {}
interface IArguments {}
interface Number { toExponential: any; }
interface Object {}
interface RegExp {}
interface String { charAt: any; }
interface Array<T> { length: number; [n: number]: T; }
//// [/user/username/projects/myproject/lib1/tools/tools.interface.js]
"use strict";
exports.__esModule = true;
//// [/user/username/projects/myproject/lib1/tools/public.js]
"use strict";
exports.__esModule = true;
//// [/user/username/projects/myproject/lib1/public.js]
"use strict";
exports.__esModule = true;
//// [/user/username/projects/myproject/lib2/data2.js]
"use strict";
exports.__esModule = true;
var Data2 = /** @class */ (function () {
function Data2() {
}
return Data2;
}());
exports.Data2 = Data2;
//// [/user/username/projects/myproject/lib2/data.js]
"use strict";
exports.__esModule = true;
var Data = /** @class */ (function () {
function Data() {
}
Data.prototype.test = function () {
var result = {
title: "title"
};
return result;
};
return Data;
}());
exports.Data = Data;
//// [/user/username/projects/myproject/lib2/public.js]
"use strict";
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
exports.__esModule = true;
__export(require("./data"));
//// [/user/username/projects/myproject/app.js]
"use strict";
exports.__esModule = true;
var public_1 = require("lib2/public");
var App = /** @class */ (function () {
function App() {
new public_1.Data().test();
}
return App;
}());
exports.App = App;
Output::
>> Screen clear
12:00:39 AM - Starting compilation in watch mode...
12:00:54 AM - Found 0 errors. Watching for file changes.
Program root files: ["/user/username/projects/myproject/app.ts"]
Program options: {"baseUrl":"/user/username/projects/myproject","assumeChangesOnlyAffectDirectDependencies":true,"watch":true,"configFilePath":"/user/username/projects/myproject/tsconfig.json"}
Program files::
/a/lib/lib.d.ts
/user/username/projects/myproject/lib1/tools/tools.interface.ts
/user/username/projects/myproject/lib1/tools/public.ts
/user/username/projects/myproject/lib1/public.ts
/user/username/projects/myproject/lib2/data2.ts
/user/username/projects/myproject/lib2/data.ts
/user/username/projects/myproject/lib2/public.ts
/user/username/projects/myproject/app.ts
Semantic diagnostics in builder refreshed for::
/a/lib/lib.d.ts
/user/username/projects/myproject/lib1/tools/tools.interface.ts
/user/username/projects/myproject/lib1/tools/public.ts
/user/username/projects/myproject/lib1/public.ts
/user/username/projects/myproject/lib2/data2.ts
/user/username/projects/myproject/lib2/data.ts
/user/username/projects/myproject/lib2/public.ts
/user/username/projects/myproject/app.ts
WatchedFiles::
/user/username/projects/myproject/tsconfig.json:
{"pollingInterval":250}
/user/username/projects/myproject/app.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib2/public.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib2/data.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib1/public.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib1/tools/public.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib1/tools/tools.interface.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib2/data2.ts:
{"pollingInterval":250}
/a/lib/lib.d.ts:
{"pollingInterval":250}
FsWatches::
FsWatchesRecursive::
/user/username/projects/myproject/node_modules/@types:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
exitCode:: ExitStatus.undefined
Change:: Rename property title to title2 of interface ITest
//// [/user/username/projects/myproject/lib1/tools/tools.interface.ts]
export interface ITest {
title2: string;
}
//// [/user/username/projects/myproject/lib1/tools/tools.interface.js] file written with same contents
//// [/user/username/projects/myproject/lib1/tools/public.js] file written with same contents
Output::
>> Screen clear
12:00:58 AM - File change detected. Starting incremental compilation...
12:01:05 AM - Found 0 errors. Watching for file changes.
Program root files: ["/user/username/projects/myproject/app.ts"]
Program options: {"baseUrl":"/user/username/projects/myproject","assumeChangesOnlyAffectDirectDependencies":true,"watch":true,"configFilePath":"/user/username/projects/myproject/tsconfig.json"}
Program files::
/a/lib/lib.d.ts
/user/username/projects/myproject/lib1/tools/tools.interface.ts
/user/username/projects/myproject/lib1/tools/public.ts
/user/username/projects/myproject/lib1/public.ts
/user/username/projects/myproject/lib2/data2.ts
/user/username/projects/myproject/lib2/data.ts
/user/username/projects/myproject/lib2/public.ts
/user/username/projects/myproject/app.ts
Semantic diagnostics in builder refreshed for::
/user/username/projects/myproject/lib1/tools/tools.interface.ts
/user/username/projects/myproject/lib1/tools/public.ts
WatchedFiles::
/user/username/projects/myproject/tsconfig.json:
{"pollingInterval":250}
/user/username/projects/myproject/app.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib2/public.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib2/data.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib1/public.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib1/tools/public.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib1/tools/tools.interface.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib2/data2.ts:
{"pollingInterval":250}
/a/lib/lib.d.ts:
{"pollingInterval":250}
FsWatches::
FsWatchesRecursive::
/user/username/projects/myproject/node_modules/@types:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
exitCode:: ExitStatus.undefined
@@ -0,0 +1,219 @@
/a/lib/tsc.js --w
//// [/user/username/projects/myproject/lib1/tools/tools.interface.ts]
export interface ITest {
title: string;
}
//// [/user/username/projects/myproject/lib1/tools/public.ts]
export * from "./tools.interface";
//// [/user/username/projects/myproject/app.ts]
import { Data } from "lib2/public";
export class App {
public constructor() {
new Data().test();
}
}
//// [/user/username/projects/myproject/lib2/public.ts]
export * from "./data";
//// [/user/username/projects/myproject/lib1/public.ts]
export * from "./tools/public";
//// [/user/username/projects/myproject/lib2/data.ts]
import { ITest } from "lib1/public";
export class Data {
public test() {
const result: ITest = {
title: "title"
}
return result;
}
}
//// [/user/username/projects/myproject/tsconfig.json]
{"files":["app.ts"],"compilerOptions":{"baseUrl":".","assumeChangesOnlyAffectDirectDependencies":true}}
//// [/a/lib/lib.d.ts]
/// <reference no-default-lib="true"/>
interface Boolean {}
interface Function {}
interface CallableFunction {}
interface NewableFunction {}
interface IArguments {}
interface Number { toExponential: any; }
interface Object {}
interface RegExp {}
interface String { charAt: any; }
interface Array<T> { length: number; [n: number]: T; }
//// [/user/username/projects/myproject/lib1/tools/tools.interface.js]
"use strict";
exports.__esModule = true;
//// [/user/username/projects/myproject/lib1/tools/public.js]
"use strict";
exports.__esModule = true;
//// [/user/username/projects/myproject/lib1/public.js]
"use strict";
exports.__esModule = true;
//// [/user/username/projects/myproject/lib2/data.js]
"use strict";
exports.__esModule = true;
var Data = /** @class */ (function () {
function Data() {
}
Data.prototype.test = function () {
var result = {
title: "title"
};
return result;
};
return Data;
}());
exports.Data = Data;
//// [/user/username/projects/myproject/lib2/public.js]
"use strict";
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
exports.__esModule = true;
__export(require("./data"));
//// [/user/username/projects/myproject/app.js]
"use strict";
exports.__esModule = true;
var public_1 = require("lib2/public");
var App = /** @class */ (function () {
function App() {
new public_1.Data().test();
}
return App;
}());
exports.App = App;
Output::
>> Screen clear
12:00:37 AM - Starting compilation in watch mode...
12:00:50 AM - Found 0 errors. Watching for file changes.
Program root files: ["/user/username/projects/myproject/app.ts"]
Program options: {"baseUrl":"/user/username/projects/myproject","assumeChangesOnlyAffectDirectDependencies":true,"watch":true,"configFilePath":"/user/username/projects/myproject/tsconfig.json"}
Program files::
/a/lib/lib.d.ts
/user/username/projects/myproject/lib1/tools/tools.interface.ts
/user/username/projects/myproject/lib1/tools/public.ts
/user/username/projects/myproject/lib1/public.ts
/user/username/projects/myproject/lib2/data.ts
/user/username/projects/myproject/lib2/public.ts
/user/username/projects/myproject/app.ts
Semantic diagnostics in builder refreshed for::
/a/lib/lib.d.ts
/user/username/projects/myproject/lib1/tools/tools.interface.ts
/user/username/projects/myproject/lib1/tools/public.ts
/user/username/projects/myproject/lib1/public.ts
/user/username/projects/myproject/lib2/data.ts
/user/username/projects/myproject/lib2/public.ts
/user/username/projects/myproject/app.ts
WatchedFiles::
/user/username/projects/myproject/tsconfig.json:
{"pollingInterval":250}
/user/username/projects/myproject/app.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib2/public.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib2/data.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib1/public.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib1/tools/public.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib1/tools/tools.interface.ts:
{"pollingInterval":250}
/a/lib/lib.d.ts:
{"pollingInterval":250}
FsWatches::
FsWatchesRecursive::
/user/username/projects/myproject/node_modules/@types:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
exitCode:: ExitStatus.undefined
Change:: Rename property title to title2 of interface ITest
//// [/user/username/projects/myproject/lib1/tools/tools.interface.ts]
export interface ITest {
title2: string;
}
//// [/user/username/projects/myproject/lib1/tools/tools.interface.js] file written with same contents
//// [/user/username/projects/myproject/lib1/tools/public.js] file written with same contents
Output::
>> Screen clear
12:00:54 AM - File change detected. Starting incremental compilation...
12:01:01 AM - Found 0 errors. Watching for file changes.
Program root files: ["/user/username/projects/myproject/app.ts"]
Program options: {"baseUrl":"/user/username/projects/myproject","assumeChangesOnlyAffectDirectDependencies":true,"watch":true,"configFilePath":"/user/username/projects/myproject/tsconfig.json"}
Program files::
/a/lib/lib.d.ts
/user/username/projects/myproject/lib1/tools/tools.interface.ts
/user/username/projects/myproject/lib1/tools/public.ts
/user/username/projects/myproject/lib1/public.ts
/user/username/projects/myproject/lib2/data.ts
/user/username/projects/myproject/lib2/public.ts
/user/username/projects/myproject/app.ts
Semantic diagnostics in builder refreshed for::
/user/username/projects/myproject/lib1/tools/tools.interface.ts
/user/username/projects/myproject/lib1/tools/public.ts
WatchedFiles::
/user/username/projects/myproject/tsconfig.json:
{"pollingInterval":250}
/user/username/projects/myproject/app.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib2/public.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib2/data.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib1/public.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib1/tools/public.ts:
{"pollingInterval":250}
/user/username/projects/myproject/lib1/tools/tools.interface.ts:
{"pollingInterval":250}
/a/lib/lib.d.ts:
{"pollingInterval":250}
FsWatches::
FsWatchesRecursive::
/user/username/projects/myproject/node_modules/@types:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
exitCode:: ExitStatus.undefined
@@ -0,0 +1,151 @@
/a/lib/tsc.js --w
//// [/user/username/projects/noEmitOnError/shared/types/db.ts]
export interface A {
name: string;
}
//// [/user/username/projects/noEmitOnError/src/main.ts]
import { A } from "../shared/types/db";
const a = {
lastName: 'sdsd'
;
//// [/user/username/projects/noEmitOnError/src/other.ts]
console.log("hi");
export { }
//// [/user/username/projects/noEmitOnError/tsconfig.json]
{"compilerOptions":{"outDir":"./dev-build","noEmitOnError":true,"assumeChangesOnlyAffectDirectDependencies":true}}
//// [/a/lib/lib.d.ts]
/// <reference no-default-lib="true"/>
interface Boolean {}
interface Function {}
interface CallableFunction {}
interface NewableFunction {}
interface IArguments {}
interface Number { toExponential: any; }
interface Object {}
interface RegExp {}
interface String { charAt: any; }
interface Array<T> { length: number; [n: number]: T; }
interface ReadonlyArray<T> {}
declare const console: { log(msg: any): void; };
Output::
>> Screen clear
12:00:31 AM - Starting compilation in watch mode...
src/main.ts(4,1): error TS1005: ',' expected.
12:00:32 AM - Found 1 error. Watching for file changes.
Program root files: ["/user/username/projects/noEmitOnError/shared/types/db.ts","/user/username/projects/noEmitOnError/src/main.ts","/user/username/projects/noEmitOnError/src/other.ts"]
Program options: {"outDir":"/user/username/projects/noEmitOnError/dev-build","noEmitOnError":true,"assumeChangesOnlyAffectDirectDependencies":true,"watch":true,"configFilePath":"/user/username/projects/noEmitOnError/tsconfig.json"}
Program files::
/a/lib/lib.d.ts
/user/username/projects/noEmitOnError/shared/types/db.ts
/user/username/projects/noEmitOnError/src/main.ts
/user/username/projects/noEmitOnError/src/other.ts
Semantic diagnostics in builder refreshed for::
/a/lib/lib.d.ts
/user/username/projects/noEmitOnError/shared/types/db.ts
/user/username/projects/noEmitOnError/src/main.ts
/user/username/projects/noEmitOnError/src/other.ts
WatchedFiles::
/user/username/projects/noemitonerror/tsconfig.json:
{"pollingInterval":250}
/user/username/projects/noemitonerror/shared/types/db.ts:
{"pollingInterval":250}
/user/username/projects/noemitonerror/src/main.ts:
{"pollingInterval":250}
/user/username/projects/noemitonerror/src/other.ts:
{"pollingInterval":250}
/a/lib/lib.d.ts:
{"pollingInterval":250}
FsWatches::
FsWatchesRecursive::
/user/username/projects/noemitonerror/node_modules/@types:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
/user/username/projects/noemitonerror:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
exitCode:: ExitStatus.undefined
Change:: Fix the error
//// [/user/username/projects/noEmitOnError/src/main.ts]
import { A } from "../shared/types/db";
const a = {
lastName: 'sdsd'
};
//// [/user/username/projects/noEmitOnError/dev-build/shared/types/db.js]
"use strict";
exports.__esModule = true;
//// [/user/username/projects/noEmitOnError/dev-build/src/main.js]
"use strict";
exports.__esModule = true;
var a = {
lastName: 'sdsd'
};
//// [/user/username/projects/noEmitOnError/dev-build/src/other.js]
"use strict";
exports.__esModule = true;
console.log("hi");
Output::
>> Screen clear
12:00:36 AM - File change detected. Starting incremental compilation...
12:00:53 AM - Found 0 errors. Watching for file changes.
Program root files: ["/user/username/projects/noEmitOnError/shared/types/db.ts","/user/username/projects/noEmitOnError/src/main.ts","/user/username/projects/noEmitOnError/src/other.ts"]
Program options: {"outDir":"/user/username/projects/noEmitOnError/dev-build","noEmitOnError":true,"assumeChangesOnlyAffectDirectDependencies":true,"watch":true,"configFilePath":"/user/username/projects/noEmitOnError/tsconfig.json"}
Program files::
/a/lib/lib.d.ts
/user/username/projects/noEmitOnError/shared/types/db.ts
/user/username/projects/noEmitOnError/src/main.ts
/user/username/projects/noEmitOnError/src/other.ts
Semantic diagnostics in builder refreshed for::
/user/username/projects/noEmitOnError/src/main.ts
WatchedFiles::
/user/username/projects/noemitonerror/tsconfig.json:
{"pollingInterval":250}
/user/username/projects/noemitonerror/shared/types/db.ts:
{"pollingInterval":250}
/user/username/projects/noemitonerror/src/main.ts:
{"pollingInterval":250}
/user/username/projects/noemitonerror/src/other.ts:
{"pollingInterval":250}
/a/lib/lib.d.ts:
{"pollingInterval":250}
FsWatches::
FsWatchesRecursive::
/user/username/projects/noemitonerror/node_modules/@types:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
/user/username/projects/noemitonerror:
{"fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}}
exitCode:: ExitStatus.undefined