【问题标题】:Typescript - Concept questions [duplicate]打字稿-概念问题[重复]
【发布时间】:2019-11-13 17:30:59
【问题描述】:

编辑

这个问题没有回答我的问题。我不是在问 TS 是什么,也不是在问它的用途。我正在询问有关它的具体问题。我想澄清一些概念。

我不相信这是重复的。有人很友好地回答了我的简单是/否问题。

我指出了一个特定的 TS 概念,我有一个关于指向我当前正在使用的示例的问题。我特别想知道是否需要在示例中的某处添加关键字字符串。

此外,除了转译器之外,我只是询问在 TS 中部署应用程序所采取的所有步骤是否与使用常规 JS 的方式相似。

编辑结束

如果适用,我只想对这些问题简单回答“是/否”。任何关于答案的解释都取决于你。是/否答案将帮助我弄清楚如何编写这个应用程序。

对于 Typescript(TS),如果我们同意它的一方面是几乎所有有效的 Javascript(JS) 也是有效的 TS。

例子:

const [toggle, setToggle] = useState('');

是否需要以任何方式更改以符合 TS 约定/规则?我觉得我必须以某种方式用那个 useState 定义string

另外,除了转译器的使用和安装的所有依赖项之外,这是否与我在 JS 中用于部署的过程相同?例如,我是否需要担心 TS 独有的任何其他可能阻止我正常部署的事情?

【问题讨论】:

  • 是否需要更改:否,这是否与我在 JS 中用于部署的过程相同:是
  • @RandyCasburn 谢谢。这就是我所需要的。
  • 已进行了编辑,解释了我在寻找什么
  • 为什么有人会拿出我的解释来解释为什么这不是重复的?似乎人们只是为了好玩而投反对票

标签: javascript typescript static-typing


【解决方案1】:

...如果我们同意它的一个方面是几乎所有有效的 Javascript(JS) 也是有效的 TS

如果我将其改写为“我可以简单地将文件扩展名从 .js 更改为 .ts 并且它将始终在默认设置下编译”,答案是肯定的。

但是,根据您的 tsconfig.json 的设置,它可能无法正常工作。例如,如果 noImplicitAny 设置为 true,那么即使像 function f(x) {} 这样简单的事情也会失败;您必须指定x 的类型。

除了转译器的使用和安装的所有依赖项之外,这是否与我在 JS 中用于部署的过程相同?

简短的回答是肯定的,但在您的问题中这是一个很大的“补充”。很多事情在转译之前都会出错,比如选择了错误的模块选项、不完整的定义文件、不反映实际用例的类型使用等等。但是把所有这些都放在一边,转译后你会得到一个正常的 JavaScript 文件,所以部署不会有任何不同。

【讨论】:

  • 您可能应该通过本快速入门了解tsc greeter.ts 之后的第一个 cmets,然后重新考虑第一个答案:typescriptlang.org/docs/handbook/typescript-in-5-minutes.html
  • @RandyCasburn 你应该多注意我说的话。 noImplicitAny 选项默认为 false,但这并不意味着你不能打开它。
  • 任何东西都可以“不工作”,但这不是 TypeScript 的前提。我可以制作 Java,所以它也不会用 javac 编译。但同样,这也不是 Java 的前提。第一个问题的答案是肯定的,给定全新安装的打字稿和提供的代码。
  • @RandyCasburn 我尊重你的意见,但你应该纯粹根据我是否陈述事实来判断我的回答。由于我的陈述中没有任何“给定”,因此在技术上没有任何问题。
  • @RandyCasburn 我完全理解您试图强​​调 TypeScript 应该是 JavaScript 的超集,但这不是我的重点。我要强调的是,在一些不太常见的情况下,事情可能会出错,我相信这就是 OP 所关心的。
猜你喜欢
  • 1970-01-01
  • 2011-10-22
  • 1970-01-01
  • 1970-01-01
  • 2011-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多