我是Typescript的新手。我一直在尝试使用tsc --out
命令连接typescript模块。但是我收到了一些错误。没有关于错误的信息。以下是这个过程,我累了。
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模块?
答案 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:--out
,sample.js
,Test.ts
” 。然后它会查找这些文件并尝试编译它们。
要解决此问题,只需使用正确的短划线字符复制并粘贴命令:
tsc --out sample.js Test.ts