打字稿-概念问题

时间:2019-07-03 04:53:39

标签: javascript typescript static-typing

编辑

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

我不认为这是重复的。有人很友好地回答了我遇到的简单的是/否问题。

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

我还问,除了转译器之类的东西以外,我要在TS中部署应用程序的所有步骤是否几乎都与常规JS的执行方式相似。

编辑结束

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

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

示例:

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

是否需要以符合TS公约/规则的任何方式对此进行更改?我觉得我必须以某种方式使用该useState定义string

此外,除了使用编译器和安装的所有依赖项之外,这是否与我在JS中进行部署所使用的过程相同?像这样,我是否需要担心TS特有的其他问题,从而阻止我像往常一样部署?

1 个答案:

答案 0 :(得分:1)

  

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

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

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

  

除了使用Transpiler并安装所有依赖项之外,这是否与我在JS中进行部署所使用的过程相同?

简短的回答是“是”,但这是您的问题中的一个“大问题”。在编译之前,很多事情都会出错,例如选择错误的模块选项,不完整的定义文件,不能反映实际用例的类型用法等。但是,将所有这些放在一旁,在编译之后,您会得到一个正常的JavaScript文件,因此部署不会有任何不同。