我有以下tsconfig.json文件
{
"compilerOptions": {
"noImplicitAny": true,
"target": "es5"
}
}
单个TypeScript文件src / app / pages / details / testts.ts:
let x = 5;
当我从tsconfig.json所在的文件夹运行tsc时,我得到了这个诊断信息:
D:\Workspaces\MyProject\client>tsc src/app/pages/details/testts.ts --diagnostics
Files: 2
Lines: 19005
Nodes: 95663
Identifiers: 35490
Symbols: 94717
Types: 12063
Memory used: 92569K
I/O read: 0.00s
I/O write: 0.00s
Parse time: 0.35s
Bind time: 0.17s
Check time: 1.58s
Emit time: 0.03s
Total time: 2.12s
它说我已经编译了两个文件,共有19005行,共2.12秒! 我相信我有一个文件和一行。出了什么问题?
答案 0 :(得分:2)
第二个文件是node_modules/typescript/lib/lib.d.ts
。它包含javascript运行时环境中可能存在的所有内容的类型声明。
尝试运行
tsc src/app/pages/details/testts.ts --diagnostics --noLib
或者只是暂时删除该文件,然后您将按预期获得有关一个文件的报告:
error TS2318: Cannot find global type 'Array'.
error TS2318: Cannot find global type 'Boolean'.
error TS2318: Cannot find global type 'Function'.
error TS2318: Cannot find global type 'IArguments'.
error TS2318: Cannot find global type 'Number'.
error TS2318: Cannot find global type 'Object'.
error TS2318: Cannot find global type 'RegExp'.
error TS2318: Cannot find global type 'String'.
Files: 1
Lines: 1
Nodes: 7
Identifiers: 1
Symbols: 5
Types: 20
Memory used: 12438K
I/O read: 0.00s
I/O write: 0.00s
Parse time: 0.01s
Bind time: 0.00s
Check time: 0.00s
Emit time: 0.02s
Total time: 0.04s
看起来很奇怪的是,如果没有Array
和其他人在单独文件中的声明,那么打字稿就无法检验琐碎的例子,但这就是它的原样。
此外,还有--lib
编译器选项,用于选择包含的库文件。例如,如果要将可用的全局符号限制为仅限es5,则可以使用
tsc src/app/pages/details/testts.ts --lib es5
将使用node_modules\typescript\lib\lib.es5.d.ts