meh*_*dvd 15 javascript typescript
目前我已经开始学习了TypeScript.从我研究过的文档中TypeScript,我看到了一些纯JavaScript代码可以编译为TypeScript代码的示例.
我的问题是:TypeScript语言的设计方式是任何JavaScript代码都是有效的TypeScript代码吗?
所以任何.js一个都是有效的.ts文件!?
Dic*_*ink 11
没有任何有效的JavaScript代码是有效的TypeScript,请参阅下面的示例.
var testVar = 4;
testVar = "asdf";
Run Code Online (Sandbox Code Playgroud)
TypeScript提供以下错误:无法将字符串转换为数字.要在TypeScript中使用,请添加":any",如下所示.
var testVar: any = 4;
testVar = "asdf"
Run Code Online (Sandbox Code Playgroud)
发生这种情况是因为TypeScript注意到了testVar,并且在声明中为它分配了一个数字,因此它决定它应该保留一个数字.
假设有效代码意味着:在语法规范方面语法正确.
那么答案是肯定的.
它记录在TypeScript规范(第2段)中:
TypeScript是JavaScript的语法糖.TypeScript语法是ECMAScript 2015(ES2015)语法的超集. 每个JavaScript程序也是一个TypeScript程序.
(强调我的)
现在,大多数情况下,您不希望基本的JavaScript被"不受控制"地使用.毕竟,这是首先创建TypeScript语言的原因之一!
然而,有效的JavaScript程序在技术上是有效的TypeScript.这在规范中可能需要"向后兼容",或者更好地制定,需要取代 ECMAScript
以另一个答案的例子,Typescript代码
var testVar = 4;
testVar = "asdf";
Run Code Online (Sandbox Code Playgroud)
将被转换为完全相同的JavaScript代码(具有所有默认编译器选项)
在Typescriptlang.org playground上演示
即使存在TypeScript错误,也不会阻止从那里输出有效的javascript.它"编译错误".(我希望这被称为警告而不是错误,但无论如何).
另见:https://basarat.gitbooks.io/typescript/content/docs/why-typescript.html
您的JavaScript是TypeScript
TypeScript为JavaScript代码提供编译时类型安全性.鉴于它的名字,这并不奇怪.最棒的是这些类型是完全可选的.您的JavaScript代码.js文件可以重命名为.ts文件,TypeScript仍然会返回与原始JavaScript文件等效的有效.js文件.TypeScript是有意且严格地是JavaScript的超集,具有可选的类型检查.
可以取消激活此行为的最简单选项(即使存在类型错误,也输出js) --noEmitOnError
| 归档时间: |
|
| 查看次数: |
4992 次 |
| 最近记录: |