为什么TypeScript允许1+';1';=';11';?什么';它背后的设计理念是什么?
如果想法是向系统添加类型,为什么它仍然允许JavaScript样式强制?(这里的新手试图理解设计思想。谢谢!)因为:为什么TypeScript允许1+';1';=';11';?什么';它背后的设计理念是什么?,typescript,type-coercion,Typescript,Type Coercion,如果想法是向系统添加类型,为什么它仍然允许JavaScript样式强制?(这里的新手试图理解设计思想。谢谢!)因为: Typescript是Javascript+type。所以,Javascript所能做的就是Typescript也能做到这一点 Typescript代码不能由web浏览器直接执行。它必须传输到Javascript。在透明过程中,所有类型信息都将被删除。这一点解释了上述情况 即使是强类型编程语言,如C#,也允许将number添加到string As C#允许将数字添加到字符串。因
- Typescript是
+Javascript
。所以,Javascript所能做的就是Typescript也能做到这一点type
- Typescript代码不能由web浏览器直接执行。它必须传输到Javascript。在透明过程中,所有类型信息都将被删除。这一点解释了上述情况
- 即使是强类型编程语言,如C#,也允许将
添加到number
string
- As C#允许将
添加到数字
。因此,Typescript没有理由不允许这样做,因为它们都是由Microsoft创建的字符串
- 您可以将Typescript的类型系统视为帮助您创建更健壮代码的工具。例如,让我们看看下面的代码:
你能猜出输出吗?let a: number = 1; let b: string = '1'; a = false; console.log(a + b);
哦,等等,代码甚至可以编译/传输吗 输出为
,Typescript代码仍成功传输为Javascript代码。然而,transpiler会在你面前吐出一个错误,说:false1
。这就是为什么我说Typescript中的类型'false'不可分配给类型'number'
是可选的。它只是为了帮助您的代码更加健壮type