我已将@types/jasmine
安装为devDependency。
我编写我的打字稿的gulp任务是这样的:
gulp.task('compile:tests', ['compile:typescript', 'clean:tests'], function () {
var project = ts.createProject('tsconfig.json', { typescript: typescript });
var tsResult = gulp.src(['spec/**/*spec.ts'])
.pipe(ts(project));
return tsResult.js
.pipe(gulp.dest('spec/'));
});
和我的tsconfig.json
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"moduleResolution": "node"
},
"exclude": [
"node_modules"
]
}
但这会导致错误:
spec \ linter.spec.ts(7,1):错误TS2304:找不到名称'describe'。
spec \ linter.spec.ts(8,3):错误TS2304:找不到名称'it' spec \ linter.spec.ts(17,5):错误TS2304:找不到名称'expect' spec \ linter.spec.ts(20,3):错误TS2304:找不到名称'it'。
如何获取打字稿(当由gulp-typescript使用时)识别@types/...
类型?
答案 0 :(得分:2)
<强>更新强> 最新版本修复了该问题:使用
安装 npm install gulp-typescript@3
pre gulp-typescript @ 3: 到目前为止,我的工作是手动包含所有@types类型,如下所示:
gulp.src(['spec/**/*spec.ts', "./node_modules/@types/**/*.d.ts"])
如果您的打字版本存在冲突(此处正在查看您@types/node@x
),那么您可以跳过它们以避免重复:
gulp.src([
paths.source + '**/*.ts',
"node_modules/@types/**/index.d.ts",
"!node_modules/@types/**/node_modules/**/index.d.ts"])
答案 1 :(得分:2)
您可以使用project.src()
代替gulp.src(['typings-glob', 'sources-glob'])
。
**出于某种原因,在我正在进行的项目中,使用project.src()
时,转换需要大约3秒钟,因此我坚持使用gulp.src
选项。
答案 2 :(得分:0)
以下为我工作。
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"moduleResolution": "node"
},
"files": [
"node_modules/@types/**/*.d.ts"
],
"exclude": [
"node_modules"
]
}
nvm,它不会工作,也不会同时使用“包含”和“排除”。