- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我引用的设置显示在下面的代码片段中
{
"compilerOptions": {
"resolveJsonModule": true,
}
}
我不太明白为什么TS语言的工程师会为“resolveJsonModule”
加个flag?环境要么支持通过 import
语句(或 require()
方法)将 JSON 解析为模块,要么环境不支持。为什么要为额外的复杂性烦恼?
最佳答案
从历史上看,Node 包含一个专门的 JSON 加载器(与 ECMA 标准无关)以允许导入 JSON 数据仅在 CommonJS 模式下。
标准化导入任何东西(ES 模块)在 ECMAScript 中只是一个相对较新的现象。导入包含有效 JSON 的文本文件,解析为 native JS 数据(“导入 JSON”)在 a proposal that is still only in stage 3 中描述。 .
但是,最近在实现上述提案方面出现了一些变化:
v4.5.0
implemented it in November v1.17.0
implemented it in December v16.14.0
implemented it last Tuesday (在 CLI 标志 --experimental-json-modules
后面)TypeScript 是一个静态类型检查器,也是一个编译器(技术上是一个转译器),并将您的 TS 源代码语法转换为您在 TSConfig 中指定的运行时环境的有效 JavaScript 语法。因为不同的运行时环境具有不同的功能,所以您配置编译器的方式会影响发出的转换后的 JavaScript。关于默认值,编译器使用算法逻辑来确定设置。 (我无法在这里总结:老实说,您必须阅读整个 reference 才能理解它。)因为加载 JSON 数据一直是非标准的、专门的操作,直到最近,它才成为默认值。
所有 JS 运行时都提供了 import
语句的替代方案,用于导入文本 JSON 数据(然后可以使用 JSON.parse
进行解析),并且它们都不需要配置编译器以您询问的方式:
Note: the data parsed from the JSON strings imported using these methods will not participate in the "automatic" type inference capabilities of the compiler module graph because they aren't part of the compilation graph: so they'll be typed as
any
(or possiblyunknown
in an extremely strict configuration).
window.fetch
Deno.readTextFile
fs.readFile
Additionally, because all JSON (JavaScript Object Notation) is valid JS, you can simply prepend the data in your JSON file with
export default
, and then save the file asdata.js
instead ofdata.json
, and then import it as a standard module:import {default as data} from './data.js';
.
关于推断类型的最后说明:
我更喜欢审核我正在导入的 JSON 并使用我自己手动编写的数据类型(由我自己或其他人编写:从模块/声明文件导入),而不是依赖编译器的推断类型来自 import 语句(我发现它在很多情况下都太窄),通过使用 type assertion 将解析的 JSON 数据分配给一个新变量.
关于json - "resolveJsonModule"的用途?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71098595/
XML可以应用于 WEB 开发的许多方面,常用于简化数据的存储和共享 XML 把数据从 HTML 分离 现在的HTML 文档一般都是显示动态数据,每当数据改变时将花费大量的时间来编辑 HTML
在类(class)(方案)中,我们最近学习了允许函数接受任意数量参数的语法,例如; (define len (lambda args (length args))) >(len 1 2 3
在 redis-cli 中执行 info 命令时,会列出与该服务器相关的所有信息。 “evicted_keys”的目的是什么? 最佳答案 Redis 可以配置为根据需要自动清除键。如果这样配置,red
golang 空结构体 struct{} 可以用来节省内存 ? 1
有人可以解释一下资源文件夹中的 Info.plist 是什么吗?我如何在我的应用程序中使用它?提前致谢。 最佳答案 您可以在Info.plist文件中为所有类型的设备指定不同的常规资源和应用程序配置,
我需要减小可执行文件的大小,并且经常在我的可执行文件中将某些“不必要的” uses占用一定的大小。 例如: Unit1连接到Unit2,但是两个单元的导入为“ System.SysUtils”。 然后
我是 OOP 的新手。虽然我了解多态是什么,但我无法真正使用它。我可以有不同名称的函数。为什么我应该尝试在我的应用程序中实现多态性。 最佳答案 在严格类型化的语言中,多态性对于拥有不同类型对象的列表/
Possible Duplicate: What is the difference between a delegate and events? Possible Duplicate: Differ
这个问题在这里已经有了答案: Custom index.html javadoc page? (2 个答案) 关闭 7 年前。 我使用的是eclipse。一般情况下我们可以使用javadoc.exe
你能解释一下吗ValidateAntiForgeryToken目的并向我展示有关 MVC 4 中的 ValidateAntiForgeryToken 的示例? 我找不到任何解释此属性的示例? 最佳答案
我正在学习 RxSwift 并试图了解 Observable 和 PublishSubject aka Sequence 之间的主要区别。 据我了解,Sequences/PublishesSubjec
有时有人说,在使用 Azure 表时,实际上存在第三个关键分区数据 - 表名称本身。 我在执行分段查询时注意到 TableContinuationToken 有一个 NextTableName 属性。
在Apple提供的aurioTouch项目中,听说在performRender()函数下的AudioController文件中的AudioBufferList ioData携带了mic到音频播放器的音
MSDN 文档没有详细解释它的用途。 由于它是可选的,我几乎假设它类似于某种元数据。 我现在如何看待它,我想用它来为特定用户指定缓存,例如: new CacheItem(key: "keyName",
我正在学习 browserify,我正在尝试用它做两件基本的事情: 转换(通过 shim)非 CommonJS 模块以实现易用性和依赖跟踪 捆绑项目特定的库 我找到了一个工作流程,说明如何使用 Gul
我通过按 CTRL + C 访问 eix 1.8.2 的 Break 菜单。它看起来像这样: BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded
在 codeLabs 教程(Android - Kotlin - Room with a View)中,他们使用“viewModelScope.launch(Dispatchers.IO)”来调用插入
我通过按 CTRL + C 访问 eix 1.8.2 的 Break 菜单。它看起来像这样: BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded
请耐心等待,因为我没有太多地使用压缩算法,所以这对你们中的一些人来说可能是显而易见的。当某些流媒体视频开始滞后时,我总是注意到这一点。当我看到这个问题时我才意识到我很好奇: Twitter image
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 3 年前。 Improv
我是一名优秀的程序员,十分优秀!