【问题标题】:Understanding the following React + TypeScript installation command了解以下 React + TypeScript 安装命令
【发布时间】:2021-01-28 11:30:24
【问题描述】:

我正在尝试从头开始创建一个 React + TypeScript 演示项目。但是,我不完全理解以下安装命令。特别是,我不太明白@types 在这里做什么。怎么理解?

npm install react react-dom typescript @types/react @types/react-dom --save

另外,我认为前段时间 npm 将--save 设为默认选项,所以这里应该没有必要。对吗?

【问题讨论】:

  • Typescript 是 JS 的包装器,它为 JS 添加了静态类型功能。但是,React 是一个库,typescript 的默认实现不包含此类模块。因此,您需要指定需要安装的参数。建议,react 创建了 create-react-app 来做基本的配置和样板文件。
  • 酷。听起来不错。另外,仅供参考,我知道 CRA。但是,我正在尝试创建一个没有它的简单项目。谢谢。
  • 您好,感激不尽。请尝试在这里坚持技术写作。请记住,Stack Overflow 问题及其答案就像 Wikipedia 或文档——由社区策划的写作,以造福于未来的广大受众。在 Meta 上有几个关于问题中的闲聊或恳求材料的讨论和指南 - 我可以根据要求为您提供一些链接。
  • 与此同时,我有时会在 Stack Overflow 上给出以下建议:请注意,我们更喜欢这里的技术写作风格。我们轻轻地劝阻问候,希望你能帮助,谢谢,提前感谢,感谢信,问候,亲切的问候,签名,请你能帮助,聊天材料和缩写 txtspk,恳求,你多久了被卡住、投票建议、元评论等。只需解释您的问题,并展示您尝试过的内容、预期的内容以及实际发生的情况。
  • 我在 Meta 上的一个相关主题:meta.stackoverflow.com/a/391945

标签: reactjs typescript installation types


【解决方案1】:

@types 包包含 TypeScript 的类型定义。这是一个organisation on npm,其中包含许多库的定义。这些定义允许在其他代码库中使用该库,因为它描述了 API 是什么以及使用的类型是什么,因此可以使用 TypeScript 编译器检查是否使用正确的参数调用了正确的函数。

也可以为用纯 JavaScript 编写的库创建这些类型定义。这再次允许它们从 TypeScript 代码库中有效地使用。 DefinitelyTyped 项目产生了许多这样的定义。

【讨论】:

  • 那么,从本质上讲,这些类型定义让 TypeScript 能够识别像 jQuery 这样的外部库?
  • 就是这样。 jQuery 是用纯 JS 编写的,因此如果您尝试执行 $(".someclass").addClass("other"),TypeScript 将不知道这是否正确,也不知道它将返回什么。然而,类型定义纠正了这一点,TS 将阻止您调用不存在的方法、传递错误的参数或错误地使用结果。
猜你喜欢
  • 2019-03-02
  • 1970-01-01
  • 2021-01-27
  • 2020-08-04
  • 2013-10-17
  • 1970-01-01
  • 2021-07-02
  • 2021-06-05
  • 1970-01-01
相关资源
最近更新 更多