我想创建一个.d.ts单个文件.ts文件,而无需还创建.js从我的源文件(S).ts文件(S).
我想运行类似的东西:
$ tsc myFile.ts -d
Run Code Online (Sandbox Code Playgroud)
但结果只是myFile.ts生成的.d.ts文件.
目前,其结果是,该文件和所有的的.ts在我的项目文件中自己制作.js和.d.ts文件.
我的目标是es2015,所以模块选项应该默认为CommonJS(如果这很重要).
我想为单个 .ts 文件创建单个 .d.ts 文件,而不从源 .ts 文件创建 .js 文件。
虽然没有编译器选项,但我们可以包含并删除生成的 .js 文件。
我们能做的是
.为声明目录,temp为 JavaScript 目录,并且编译完成后删除该temp目录。
tsc --declaration --declarationDir . --outDir temp foo.ts
rm -rf temp
Run Code Online (Sandbox Code Playgroud)如果 foo.ts 不导入其他本地 .ts 文件,则该方法有效。当 foo.ts 导入其他本地 .ts 文件时,编译器会为每个文件创建一个单独的 .d.ts 文件。因为这不是我们现在想要的,所以接下来的更好。
如果我们的用例允许创建system或amd样式声明文件,我们可以这样做:
tsc foo.ts --outFile foo.js --declaration --module system
rm -rf foo.js
Run Code Online (Sandbox Code Playgroud)
这两种方法都会使用不同的声明文件语法生成相同的目录结构。
bar
bar.ts
foo.d.ts <---- a single declaration file
foo.ts
tsconfig.json
Run Code Online (Sandbox Code Playgroud)
自从上次接受的答案以来,TS 添加了对emitDeclarationOnly的支持,它就是这样做的
例子tsconfig.json
{
"compilerOptions": {
"declaration": true,
"declarationDir": "types",
"emitDeclarationOnly": true
},
"include": ["src"]
}
Run Code Online (Sandbox Code Playgroud)
用法示例
npx tsc
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1051 次 |
| 最近记录: |