无法使用--out注释将打字稿模块(.ts)文件连接到单个输出(.js):获取错误

时间:2015-06-05 11:05:33

标签: javascript typescript typescript1.5

我是Typescript的新手。我一直在尝试使用tsc --out命令连接typescript模块。但是我收到了一些错误。没有关于错误的信息。以下是这个过程,我累了。

我有.ts文件:

Validation.ts:

module Validation {  
    export interface StringValidator {
       isAcceptable(s: string): boolean;
    }
}

ZipCodeValidator.ts:

/// <reference path="Validation.ts" />
module Validation {
    var numberRegexp = /^[0‐9]+$/;
    export class ZipCodeValidator implements StringValidator {
        isAcceptable(s: string) {
            return s.length === 5 && numberRegexp.test(s);
        }
    }
}

LettersOnlyValidator.ts:

/// <reference path="Validation.ts" />
module Validation {
    var lettersRegexp = /^[A‐Za‐z]+$/;
    export class LettersOnlyValidator implements StringValidator {
        isAcceptable(s: string) {
            return lettersRegexp.test(s);
        }
    }
}

Test.ts:

/// <reference path="Validation.ts" />
/// <reference path="LettersOnlyValidator.ts" />
/// <reference path="ZipCodeValidator.ts" />
// Some samples to try
var strings = ['Hello', '98052', '101'];
// Validators to use
var validators: { [s: string]: Validation.StringValidator; } = {};
validators['ZIP code'] = new Validation.ZipCodeValidator();
validators['Letters only'] = new Validation.LettersOnlyValidator();
// Show whether each string passed each validator
strings.forEach(s => {
    for (var name in validators) {
        console.log('"' + s + '" ' + (validators[name].isAcceptable(s) ? ' matches ' : ' does not match ') + name);
    }
});

tsc命令:

tsc --out sample.js Test.ts

错误:

error TS6053: File 'ΓÇÉout.ts' not found.  
error TS6054: File 'sample.js' must have extension '.ts' or '.d.ts' 

请告诉我解决问题的方法。还有一种,有没有办法在gulp中连接typescript模块?

2 个答案:

答案 0 :(得分:2)

我完全没有回答你,因为我没有使用tsc命令。

但如果我是你,我会自动制作(例如Gulp):

var gulp = require('gulp');
var typescript = require('gulp-typescript');
var sourcemaps = require('gulp-sourcemaps');
var addsrc = require('gulp-add-src');
var concat = require('gulp-concat');

gulp.task('tsc', function () {
    return gulp.src(['*.ts']) // all your ts files here (check the path)
        .pipe(sourcemaps.init())
        .pipe(typescript({
            sortOutput: true
        })) 
        .js // compile with tsc, ordered with _reference.ts
        .pipe(addsrc('external.js')) // add an external javascript file (if needed)
        .pipe(concat('app.js')) // concat all in one file
        .pipe(sourcemaps.write()) // generate the .map
        .pipe(gulp.dest('dist')); // write all in the dist folder
});

简而言之:

  • gulp-typescript tsc for gulp
  • gulp-sourcemaps:允许您生成 .map (用于.ts文件和.js文件之间的链接)
  • gulp-add-src:允许您在管道中添加源文件。在此过程中推送一些javascript文件非常有用。
  • gulp-concat concat 所有文件

答案 1 :(得分:0)

您的tsc --out似乎使用了错误的短划线字符 TypeScript编译器会查看您的命令,而不是 “使用文件Test.ts调用tsc并输出到sample.js 会看到 “使用3个文件调用tsc:--outsample.jsTest.ts 。然后它会查找这些文件并尝试编译它们。

要解决此问题,只需使用正确的短划线字符复制并粘贴命令:
tsc --out sample.js Test.ts