将 Typescript 翻译成 Java [关闭]
Posted
技术标签:
【中文标题】将 Typescript 翻译成 Java [关闭]【英文标题】:Translate Typescript to Java [closed] 【发布时间】:2021-10-22 23:12:20 【问题描述】:我正在尝试将 Typescript 中的代码更改为 Java。我真的对 Typescript 不太了解,并且卡在了这个功能上。我将代码简化为更简单的情况。在这种情况下,CustomType1
和 CustomType2
只是自定义“导出类型”(我在 Java 中作为类实现)。
proof(): CustomType1 | 'given' | undefined
if (something)
return 'given'
const evidence = ... //Set to a new "instance" of CustomType2
return evidence ? function(evidence) : undefined //Function returns an "instance" of CustomType1
然后,之前的代码会在这样的某个时间点运行
const proof = proof()
if (!proof || proof === 'given')
//...
如果有人向我解释,Typescript 上的这段代码是如何工作的,我将不胜感激。
?
代表什么? proof() 函数返回什么... Customtype1 的一个实例?字符串“给定”?两个都?最后,当调用!proof
时,它代表什么?因为我在任何部分都看不到任何布尔值。
【问题讨论】:
这里的伪代码太多了,imo。您应该将此问题简化为我们可以自己运行的可重现示例。 java != javascript @Rubydesic 我只需要解释一下 proof() 函数返回什么......这确实是理解 Typescript 语法的问题。但我会编辑。 @KarthikeyanVaithilingam 我知道... 请阅读 typescript 的联合类型:typescriptlang.org/docs/handbook/2/… 【参考方案1】:问:?
代表什么?
答:是ternary operator。
问: proof() 函数返回什么?
A: 它返回以下任一值:CustomType1
、文字字符串 'given'
或 undefined
。具体来说,是union。
问:拨打!proof
时,代表什么?
答:请注意,您的示例代码中发生了一些棘手的事情。局部变量const proof
为shadowing,即在当前作用域内替换原来的proof
函数。代码会更清楚地写成
const result = proof()
if (!result || result === 'given')
//...
此代码在功能上大部分是等效的。这里,!result
是 true
,如果 result
是 falsey 值。与此案例最相关的是 true
if result === undefined
【讨论】:
以上是关于将 Typescript 翻译成 Java [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
从 Java 到 Oracle SQL 的翻译:将每个元素作为 SELECT 语句的结果使用到循环中[关闭]
如何使用 CLI 将带有节点模块的 TypeScript Web 应用程序编译成一个 JavaScript 文件? [关闭]