Primary compilation functionality for transforming TypeScript files into JavaScript with full compiler option support and integration with gulp's streaming system.
Main compilation function with multiple overloads supporting different usage patterns from simple one-off compilation to complex project-based builds.
/**
* Compile TypeScript files using a project instance
* @param proj - Project instance created with createProject
* @param theReporter - Optional error reporter for handling compilation errors
* @returns CompileStream with js and dts sub-streams
*/
function compile(proj: Project, theReporter?: Reporter): CompileStream;
/**
* Compile TypeScript files using inline settings
* @param settings - Compiler settings and options
* @param theReporter - Optional error reporter for handling compilation errors
* @returns CompileStream with js and dts sub-streams
*/
function compile(settings: Settings, theReporter?: Reporter): CompileStream;
/**
* Compile TypeScript files using default settings
* @returns CompileStream with js and dts sub-streams
*/
function compile(): CompileStream;Usage Examples:
import * as gulp from 'gulp';
import * as ts from 'gulp-typescript';
// Basic compilation with inline settings
gulp.task('compile-basic', () => {
return gulp.src('src/**/*.ts')
.pipe(ts({
noImplicitAny: true,
target: 'ES2017',
module: 'commonjs'
}))
.pipe(gulp.dest('dist'));
});
// Compilation using a project
const tsProject = ts.createProject('tsconfig.json');
gulp.task('compile-project', () => {
return gulp.src('src/**/*.ts')
.pipe(ts(tsProject)) // Deprecated usage
.pipe(gulp.dest('dist'));
});
// Modern project-based compilation
gulp.task('compile-modern', () => {
return gulp.src('src/**/*.ts')
.pipe(tsProject())
.pipe(gulp.dest('dist'));
});
// With custom error reporter
gulp.task('compile-with-reporter', () => {
return gulp.src('src/**/*.ts')
.pipe(ts({
declaration: true
}, ts.reporter.fullReporter()))
.pipe(gulp.dest('dist'));
});The result of compilation operations, providing access to both JavaScript and TypeScript declaration file outputs.
interface ICompileStream extends NodeJS.ReadWriteStream {
/** Stream containing compiled JavaScript files */
js: stream.Readable;
/** Stream containing TypeScript declaration files (.d.ts) */
dts: stream.Readable;
}
type CompileStream = ICompileStream;Usage Examples:
import * as gulp from 'gulp';
import * as ts from 'gulp-typescript';
import * as merge from 'merge2';
// Separate JavaScript and declaration file outputs
gulp.task('compile-separate', () => {
const tsResult = gulp.src('src/**/*.ts')
.pipe(ts({
declaration: true,
outDir: 'dist'
}));
return merge([
tsResult.js.pipe(gulp.dest('dist/js')),
tsResult.dts.pipe(gulp.dest('dist/types'))
]);
});
// Process JavaScript files through additional plugins
gulp.task('compile-and-minify', () => {
const tsResult = gulp.src('src/**/*.ts')
.pipe(ts({
target: 'ES5',
module: 'umd'
}));
return merge([
tsResult.js
.pipe(uglify())
.pipe(gulp.dest('dist/js')),
tsResult.dts
.pipe(gulp.dest('dist/types'))
]);
});Legacy filter function that has been removed in version 3.0.
/**
* @deprecated Filters have been removed as of gulp-typescript 3.0
*/
function filter(...args: any[]): void;interface CompilationResult {
/** Only used when using isolatedModules */
transpileErrors: number;
/** Errors in compiler options */
optionsErrors: number;
/** Syntax errors in source code */
syntaxErrors: number;
/** Global compilation errors */
globalErrors: number;
/** Semantic analysis errors */
semanticErrors: number;
/** Declaration file generation errors */
declarationErrors: number;
/** File emission errors */
emitErrors: number;
/** Whether emit was disabled */
noEmit: boolean;
/** Whether emit was skipped due to errors */
emitSkipped: boolean;
}