3

我已經安裝@types/jasmine作爲devDependency。gulp-typescipt和typescript的新@types類型?

我一口任務編譯我的打字稿是像這樣:

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.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'。

我怎樣才能得到打字稿(當使用打字打字稿)識別@types/...打字?

回答

2

更新時間: 最新版本修復了問題:安裝與

npm install [email protected]

預一飲而盡,打字稿@ 3: 到目前爲止,我的解決辦法一直是手動包括所有@types分型,如下所示:

gulp.src(['spec/**/*spec.ts', "./node_modules/@types/**/*.d.ts"]) 

如果你有類型衝突的版本(這裏是看你@types/[email protected]),那麼你可以在他們跳過,避免重複:

gulp.src([ 
    paths.source + '**/*.ts', 
    "node_modules/@types/**/index.d.ts", 
    "!node_modules/@types/**/node_modules/**/index.d.ts"]) 
2

可以使用project.src()而不是gulp.src(['typings-glob', 'sources-glob'])

**由於某些原因,在我正在進行的項目中,當使用project.src()時,轉譯需要大約3秒鐘,因此我堅持使用gulp.src選項。

+0

剛剛測試過;不適用於我,如果我排除node_modules。 (沒有排除它與其他錯誤爆炸):( –

+0

您可以使用_include_屬性而不是_exclude_。請參閱[tsconfig架構](http://json.schemastore.org/tsconfig) –

0

以下工作適合我。

{ 
    "compilerOptions": { 
     "target": "es6", 
     "module": "commonjs", 
     "moduleResolution": "node" 
    }, 
    "files": [ 
     "node_modules/@types/**/*.d.ts" 
    ], 
    "exclude": [ 
     "node_modules" 
    ] 
} 

NVM,也不會工作,既不使用它 「包括」 和 「排除」 在一起。

相關問題