Questions tagged «tsconfig»

11
如何在tsconfig.json中使用路径?
我正在阅读有关路径映射的信息tsconfig.json,我想用它来避免使用以下难看的路径: 项目组织有点奇怪,因为我们有一个包含项目和库的单一存储库。这些项目按公司和浏览器/服务器/通用分组。 我该如何配置路径tsconfig.json而不是: import { Something } from "../../../../../lib/src/[browser/server/universal]/..."; 我可以用: import { Something } from "lib/src/[browser/server/universal]/..."; Webpack配置中是否还需要其他内容?还是tsconfig.json足够?


2
TypeScript 3.7.2-当前未启用对实验语法“ optionalChaining”的支持
在我的项目中,我正在使用应支持可选链接的TS 3.7.2。但是当我尝试这样使用它时:const state = urlParams.state?.toString()我得到了错误: 目前未启用对实验语法“ optionalChaining”的支持 将@ babel / plugin-proposal-optional-chaining(https://git.io/vb4Sk)添加到Babel配置的“插件”部分以启用转换。 我检查了发行说明,但没有看到有关为该功能添加tsconfig选项的任何要求。 我想知道我已经在使用TS时是否需要babel插件和配置,如何解决该错误?

2
配置具有公共依赖项的TypeScript项目以构建多个纯JavaScript输出文件
我目前正在为Bot Land编写一些脚本。Bot Land是一种实时策略游戏,您无需使用鼠标和键盘来控制自己的单位,而是可以编写代码来通过API控制机器人,然后让机器人与其他机器人进行对抗。如果您熟悉SC2中的单位,则可以创建类似于眨眼潜行者,攻城坦克,医护人员和超能力的机器人。(对于软件工程师来说,这是一个非常有趣的游戏,但这超出了此问题的范围。) Bot控件的复杂度从三个级别提高:默认的AI,类似于Scratch的编程语言以及减少的JavaScript集合,称为BotLandScript。尽管BotLandScript的内置编辑器是合理的,但是您必须将所有代码作为一个文件上载,并在各处使用全局顶级功能。自然,如果您的代码开始变长并且不同的机器人共享相同的功能,那么一段时间后,这将变得很痛苦。 为了方便为多个机器人编写代码,减少使用裸露的JS编码时发生意外错误的机会,并增加击败其他玩家的机会,我设置了上述TypeScript项目,以提供一个公共库以及每个机器人的代码。当前目录结构大致类似于以下内容: lib/ bot.land.d.ts common.ts BlinkStalker/ BlinkStalker.ts tsconfig.json Artillery/ Artillery.ts tsconfig.json SmartMelee/ SmartMelee.ts tsconfig.json lib是bot之间共享的通用代码,并提供(非TS)Bot Land API的TypeScript定义。然后,每个机器人都有自己的文件夹,其中一个文件包含机器人代码,另一个文件包含样板tsconfig.json: { "compilerOptions": { "target": "es3", "module": "none", "sourceMap": false, "outFile": "bot.js" }, "files": [ "MissileKite.ts" ], "include": [ "../lib/**/*" ] } tsconfig.json构建bot.js完每个文件后,它会创建一个对应文件,其中包含来自bot本身的转译代码以及中的所有代码common.js。此设置由于以下几个原因而欠佳:需要大量重复的样板,使其很难添加新的bot,为每个bot包含很多不必要的代码,并且要求分别构建每个bot。 但是,根据我到目前为止的研究,似乎没有一种简单的方法可以完成我想要的事情。特别是,使用new tsc -b选项和引用不起作用,因为这需要对代码进行模块化,而Bot Land需要一个文件,且所有功能都在顶层定义。 达成以下尽可能多的最佳方法是什么? 不需要新的样板即可添加新的机器人(例如,tsconfig.json每个机器人不需要) 使用import了常用的功能,以避免输出无用的代码,但随后... 仍以Bot …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.