beta:互动尚未到位...
代码书 - 打字稿
欢迎使用CodeBook-您的学习打字条指南!通过从零到英雄的示例中的示例中学习。该存储库是初学者和经验丰富的开发人员的宝贵资源,提供了精心策划的示例和解释集合,以帮助您掌握打字稿。
快速开始
请按照以下步骤开始使用CodeBook:
- 将存储库克隆到您的本地计算机。
- 通过运行NPM安装来安装项目依赖项。
- 通过运行NPM运行构建来编译打字稿代码。
- 通过执行相应的NPM脚本来运行每一章的示例。
# replace number with chapter you want to see output from.
npm run chapter:1
请注意,大多数示例都会输出虚拟文本。为了更详细地探索代码,建议您本身阅读脚本。您可以在./src目录中找到源代码,并在各章中导航。
确保您在计算机上安装了node.js,最好按照包装的发动机字段中指定的16版或更高版本。已对代码存储库进行了测试和验证以与Node.JS 16一起工作。打字稿编译器中的ECMA2020目标最少需要Node.js版本10。
随时探索下面提供的快速链接或潜入源代码以增强您的学习体验。愉快的编码!
注意:该代码库经过连续测试和维护,但请注意,某些部分可能正在开发或不深入覆盖。非常感谢您的反馈和贡献使该存储库对打字稿社区更有价值。
里面有什么?
CodeBook涵盖了广泛的打字稿主题,从基础知识开始,逐渐发展为更高级的概念。每个主题都伴随着清晰而简洁的例子,使您可以通过做学习。从原始类型和类型的别名到类,模块和高级类型系统,CodeBook都可以覆盖您。
学习路径
该存储库被设计为速成课程,在打字稿中从零到英雄。它的结构是使您逐步建立知识和技能的方式。从基本原理开始,然后努力工作,在您走时解决更复杂的概念。只要您需要复习,就可以随意以自己的节奏探索并重新访问主题。
什么是打字稿?
- JavaScript是一种脚本语言,也称为解释的语言,这意味着该代码是在运行时通过行执行的,而不是在执行前将代码编译成二进制形式。该解释通常由JavaScript解释器完成 - 一些常见的解释是Node.js或任何浏览器(在支持JavaScript的支持下,这可能都是所有的)。
- Typescript是JavaScript的超集,这意味着任何有效的JavaScript代码也是有效的Typescript代码。但此外,它引入了一个编译器(TSC),该编译器(TSC)将打字稿代码转换为JavaScript,使您能够利用打字稿的其他功能和好处,同时仍将JavaScript作为执行平台。
- TS范围-TSC认为编译器中包含的所有文件属于同一全局空间。如果JS文件由配置包含在JS文件中,也适用。为了防止范围的态度,将每个文件包裹起来,以分开范围。
- 从技术上讲,JavaScript代码库的典型生命周期将是开发,然后是运行时执行。当然,生命周期的其他阶段,例如换,建筑,生成,测试,出版,部署等。为简单起见,在这里,我们将把所有暴期限的阶段总结到“开发”中,然后将其总结为“运行时”。
- 鉴于所有这些,可以肯定地说,Typescript引入了强制性阶段 - 汇编 - 作为额外的成本,但是大大减少错误的奖励是非常感谢。
为什么要打字稿?
- 静态分析 - 代码库变为“强键入”,这意味着对象注释必定会接口和声明,从而使您可以在运行时具有“形状”或每个对象的“类型”。在运行应用程序之前,这可以改善捕获错误(通过类型安全)。
- 工具 - IDE在支持打字稿的情况下将大大改善您的编码工作流程。 VSCODE使用引擎盖下的打字稿,即使使用JS代码库也有帮助。
- 可读性 - 具有明确的对象定义(类型)有助于了解对象的行为以及它的行为方式,而不仅仅是具有属性的“随机”对象。进一步的Typescript通过引入语言功能(例如接口,仿制药和其他)来增强JavaScript,所有这些功能都使您可以更好地构建一个人的代码库。
- 可维护性 - 由于被触发的类型安全性,您可以观察到依赖项,参考和等等。所有这些都从静态分析开始。
- 采用 - 由于Typescript是在JavaScript之上构建的,因此可以很容易地采用。更进一步,这可能会逐渐发生。
什么时候到打字稿?
值得注意的是,与编写普通的JavaScript相比,Typescript引入了额外的复杂性。如果您从事一个小项目,截止日期紧缩或需要快速原型,那么打字稿可能无法提供实质性的好处,而JavaScript可能是一个更合适的选择。
贡献
该代码手册是一个开源项目,欢迎捐款!如果您发现任何错误,提出改进建议,或想添加更多示例以增强学习经验,请随时提交拉动请求。我们可以一起为打字稿社区提供更好的资源。
注意:此代码手册正在不断发展,并且可能缺少或不涵盖某些主题。您的反馈和贡献将有助于使这个存储库对每个人都更加全面和有价值。
目录
- 第1章:不安全
- 第2章:Hello World!
- 第3章:原始
- 第4章:收藏
- 第5章:功能
- 句法
- 无返回类型
- 语境
- 明确的参数
- 呼叫签名
- 构造函数签名
- 超载签名
- 休息参数
- 传播论点
- 第6章:对象
- 可选属性
- 非零断言
- 可选的链接
- 匿名的
- 参考:这个
- 破坏性
- 默认值
- 可读修饰符
- 可读的突变
- 索引签名
- 多余的财产检查
- 第7章:类型
- 别名
- 联盟
- 路口
- 文字
- 未知类型
- 内联类型
- 绝不
- 功能类型表达式
- 擦除
- 对象类型
- 功能类型
- 条件类型
- 映射类型
- 字符串操纵类型
- 第8章:接口
- 第9章:铸造
- 第10章:变窄
- 第11章:仿制药
- 第12章:反思
- 第13章:班级
- 句法
- 字段
- 可读
- 构造函数
- 超载
- 超级通话
- 方法
- 特性
- 遗产
- 接口
- 覆盖
- 会员访问
- 静态成员
- 抽象
- 多态性
执照
该项目已根据MIT许可获得许可。有关更多信息,请参见许可证文件。
贡献
欢迎对本代码簿的贡献!如果您有任何错误报告,功能请求或想提交拉动请求,请遵循贡献文件中概述的指南。
路线图
该代码簿的未来计划包括扩大打字稿主题的覆盖范围,添加更多示例,并提供互动练习来加强学习。此外,我们旨在纳入社区反馈并解决任何报告的问题。
致谢
特别感谢以下个人和项目的贡献,灵感和支持:
- 打字稿:打字稿语言和社区。
- 很棒的TS:精心策划的打字稿资源列表。
资源
这里有一些其他资源来进一步增强您的打字稿学习:
支持
如果您遇到任何问题或有任何疑问,请随时通过在GitHub存储库中创建问题来解决。
结论
感谢您对本代码手册的关注!我们希望这个打字稿的示例和解释集可以帮助您进行学习之旅。我们鼓励您探索代码,实验并提供反馈。愉快的编码!