0
|
Ickerday Argus Malware · 技术社区 · 3 年前 |
![]() |
1
5
在性能方面:肯定有 不 运行时性能会受到影响,因为运行时不存在任何类型脚本构造。在编译时,我想说这些更改对性能的影响可以忽略不计,并且超过了它的优点(例如可扩展性)。 |
![]() |
2
2
太长,读不下去了是的,就像 Martin's Answer 在美国,最好的做法是导出道具,这样任何包装器组件都可以使用它们。在我看来,readonly标志是不必要的,因为道具应该始终是只读的(解释如下),性能不是问题。 出口
详细回答:
回答问题
第二和第三部分说,MUI开发人员编写的每个公共组件文件都应该导出道具。在编写其道具扩展了MUI组件道具的组件时,以及在编写自己的组件时,我利用了这一点。仅此一点就足以说服您导出所有道具的接口。唯一可行的理由是,如果风格指南出于某种原因明确地这么说。 下面的代码是我目前正在处理的React+TS站点中的组件定义。
导出道具界面的另一个鲜为人知的原因(至少我没听说过太多)是自动生成文档。如果您回顾一下MUI报价的第二部分,它还提到“为生成api文档添加注释”。在上面的代码中可以看到一个例子,其中每个属性都有一个简短的解释。 我使用了一个叫做 TypeDoc 用于生成文档。它所做的是研究出口和伴随的 JSDoc 样式注释,用双星号表示(JSDoc是JavaScript的类似工具),并使用它们生成可浏览的静态HTML站点。我之所以提到这一点,是因为为了让它发挥作用,你必须导出你想要记录的项目,所以如果你以后决定使用它,它可能会派上用场。此外,即使你不使用这个工具,文本编辑器 VSCode 当你将鼠标悬停在属性上时,甚至在其他文件中,使用这些注释来提供上下文。我个人认为,当我记不起某个属性的用途时,这些注释非常有用。
只读属性
关于
表演在性能方面,它有 没有开销 在运行时,因为所有的TypeScript定义(类型、接口等)由TypeScript编译器删除,但不在输出文件中。在编译过程中,可能会有一些 轻微的 开销,但在实际应用程序中,这不会超过几毫秒。 |
![]() |
Devmix · 如何在new Map()中保存状态? 1 年前 |
![]() |
Luisus · 从Prisma 5客户端提取类型 1 年前 |
|
Rostys · TypeScript:使用类型转换进行类型保护 1 年前 |
![]() |
Anne · 类型不一致的对象的TypeScript类型定义 1 年前 |
|
tuimui · 使用react+ts通过道具传递数据 1 年前 |