gpt4 book ai didi

typescript - 如何只输出我的 typescript 项目的 d.ts?

转载 作者:搜寻专家 更新时间:2023-10-30 21:35:13 25 4
gpt4 key购买 nike

对于我的 typescript 项目,只想输出 d.ts 文件作为入口文件:

当我有一个 index.ts 时:

import a from './a';
import b from './b';

export default {
a,
b
};

当我使用 ts 和配置 tsconfig.json 编译时:

{
"compilerOptions": {
"outDir": "./lib",
"declarationDir": "./build",
"moduleResolution": "node",
"strictNullChecks": true,
"experimentalDecorators": true,
"allowSyntheticDefaultImports": true,
"noUnusedParameters": true,
"noUnusedLocals": true,
"noImplicitAny": true,
"target": "es6",
"declaration": true,
"lib": [
"dom",
"es2015",
"es2016",
],
},
"include": [
"packages/index.ts",
"typings"
],
"exclude": [
"node_modules",
"**/__tests__",
"**/__mocks__",
]
}

会输出树文件a.d.ts, b.d.ts, index.d.ts

如何只输出index.d.ts

最佳答案

您可以使用单独的 tscoutFile 一起运行来生成具有 declare 模块的单个 .d.ts 文件 每个原始模块的 block 。您可以通过从原始 tsconfig.json 中删除 declarationdeclarationDir 选项并创建一个单独的 tsconfig.declaration.json 来做到这一点 与:

{
"extends": "./tsconfig.json",
"compilerOptions": {
"module": "amd", // https://github.com/Microsoft/TypeScript/issues/27117
"declaration": true,
"emitDeclarationOnly": true,
"outFile": "build/index.d.ts"
}
}

唯一的问题是 TypeScript 3.0.3 错误地通过相对导入路径(例如 ./a)传递到输出,所以现在,您需要设置模块解析选项,以便您可以使用非相对导入路径。该问题已在 this pull request 中修复,但截至 2018 年 9 月 15 日尚未发布修复程序。

参见 this long thread用于讨论声明捆绑的其他方法。

关于typescript - 如何只输出我的 typescript 项目的 d.ts?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52326378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com