javascript - 解码打字稿三元运算符
问题描述
我在打字稿文档中遇到了一些让我感到困惑的代码。
function compare(a: string, b: string): -1 | 0 | 1 {
return a === b ? 0 : a > b ? 1 : -1;
}
任何人都可以解释退货声明中发生了什么吗?那是三元运算符吗?
解决方案
可以这样想:
function compare(a: string, b: string): -1 | 0 | 1 {
return a === b ? 0 : (a > b ? 1 : -1);
}
如果a === b
,则返回 0。否则,是a > b
? 如果是,则返回 1。否则,返回 -1。可能更容易想到这样:
function compare(a: string, b: string): -1 | 0 | 1 {
if (a === b) {
return 0;
} else {
if (a > b) {
return 1;
} else {
return -1;
}
}
虽然我是这么想的,但这是我用 if 语句编写代码的方式(记住,这三个都是等价的):
function compare(a: string, b: string): -1 | 0 | 1 {
if (a === b) {
return 0;
} else if (a > b) {
return 1;
} else {
return -1;
}
}
推荐阅读
- javascript - Bootstrap 多选 - 每组不选或最多选一个
- docker - Docker 和 Letsencrypt 证书再次出现 Keycloak 错误
- html - 移动问题上的 CSS 主题渐变背景
- sql - 如何格式化sql * plus中的整数?
- android -
我正在尝试在其他布局中重新使用带有按钮的布局,但我希望按钮的布局对于包含的每个不同布局都有不同的点击侦听器。任何想法?
第一个布局
<data> <variable name="model" type="co
- c++ - 在 CLion IDE 中运行但不在 Leetcode.com 上的 C++ 代码
- haskell - 在 Num 等类的实例之间移动
- bash - 如何抑制回显命令中的单引号字符?
- db2 - DB2 异常 - 没有上下文策略
- regex - 如何删除包含特定单词 Notepad++ 的所有组