将 Typescript 翻译成 Java [关闭]

Posted

技术标签:

【中文标题】将 Typescript 翻译成 Java [关闭]【英文标题】:Translate Typescript to Java [closed] 【发布时间】:2021-10-22 23:12:20 【问题描述】:

我正在尝试将 Typescript 中的代码更改为 Java。我真的对 Typescript 不太了解,并且卡在了这个功能上。我将代码简化为更简单的情况。在这种情况下,CustomType1CustomType2 只是自定义“导出类型”(我在 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') 
         //...
     
    

    此代码在功能上大部分是等效的。这里,!resulttrue,如果 result 是 falsey 值。与此案例最相关的是 true if result === undefined

【讨论】:

以上是关于将 Typescript 翻译成 Java [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

从 Java 到 Oracle SQL 的翻译:将每个元素作为 SELECT 语句的结果使用到循环中[关闭]

如何使用 CLI 将带有节点模块的 TypeScript Web 应用程序编译成一个 JavaScript 文件? [关闭]

Vue 2.5将迎来有关TypeScript的优化!

将几个批处理脚本命令翻译成 python [关闭]

在 TypeScript 中使用类型变量访问对象文字不起作用

将 JsObject 转换为 TypeScript 对象