将打字稿翻译成 Java
Translate Typescript to Java
我正在尝试将 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() 函数 returns... Customtype1 的一个实例是什么?字符串“给定”?两个都?最后,当调用 !proof
时,它代表什么?因为我在任何部分都看不到任何布尔值。
问:?
代表什么?
A: 是一个ternary operator.
问: proof() 的作用是什么return?
A: 它 return 是以下任何一项:a CustomType1
、文字字符串 'given'
或 undefined
.具体来说,就是一个union.
问:调用!proof
时,代表什么?
A: 请注意,您的示例代码中发生了一些棘手的事情。局部变量const proof
为shadowing,即在当前作用域内替换原来的proof
函数。代码会更清楚地写成
const result = proof()
if (!result || result === 'given') {
//...
}
此代码在大部分功能上是等效的。此处,如果 result
是 falsey 值,则 !result
是 true
。与这种情况最相关的是 true
if result === undefined
我正在尝试将 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() 函数 returns... Customtype1 的一个实例是什么?字符串“给定”?两个都?最后,当调用 !proof
时,它代表什么?因为我在任何部分都看不到任何布尔值。
问:
?
代表什么?A: 是一个ternary operator.
问: proof() 的作用是什么return?
A: 它 return 是以下任何一项:a
CustomType1
、文字字符串'given'
或undefined
.具体来说,就是一个union.问:调用
!proof
时,代表什么?A: 请注意,您的示例代码中发生了一些棘手的事情。局部变量
const proof
为shadowing,即在当前作用域内替换原来的proof
函数。代码会更清楚地写成const result = proof() if (!result || result === 'given') { //... }
此代码在大部分功能上是等效的。此处,如果
result
是 falsey 值,则!result
是true
。与这种情况最相关的是true
ifresult === undefined