假设我有一个adder.ts看起来像这样的文件:
import { Operand } from './operand';
export interface Adder {
add(op1: Operand, op2: Operand): Operand;
}
Run Code Online (Sandbox Code Playgroud)
我tsconfig.json看起来像:
{
"compilerOptions": {
"declaration": false,
"module": "commonjs",
"outDir": "./dist",
"target": "es6",
"sourceMap": true
},
"include": [
"src/**/*"
]
}
Run Code Online (Sandbox Code Playgroud)
当我转换这段代码时,我希望只收到它dist/adder.d.ts.但是,还有一个dist/adder.js内容生成:
Object.defineProperty(exports, "__esModule", { value: true });
Run Code Online (Sandbox Code Playgroud)
为什么生成此文件?它有什么用途?在一天结束时,我想我并不在乎,因为它实际上永远不会被要求/装载,并且会被任何捆绑者修剪掉.我注意到它的唯一原因是因为我的覆盖工具将此文件报告为未覆盖.
官方回答,通过网络搜索找到:.js为每个.ts简化构建过程生成一个.
另一个好处是,如果你做一些愚蠢的事情:
import * as Adder from "./dist/adder"; // or whatever is the correct path
console.log(Adder);
Run Code Online (Sandbox Code Playgroud)
你得到一个空命名空间而不是运行时错误.
| 归档时间: |
|
| 查看次数: |
182 次 |
| 最近记录: |