typescript - TypeScript:想要使用表达式构建文字类型
问题描述
在以下代码中:
const byLiteral = 3;
const byExpression = 1 + 2;
byLiteral
的类型是 3,而byExpression
的类型是number
。
我希望byExpression
' 的类型为 3。
也许它有点自相矛盾,因为1 + 2
它是一个表达式(尽管是一个“常量”表达式)而不是一个文字,它可能很有用,例如在以下情况下。
const BitsByLiteral = {
BIT0: 1,
BIT1: 2,
BIT2: 4
} as const;
const BitsByExpression = {
BIT0: 1 << 0,
BIT1: 1 << 1,
BIT2: 1 << 2
} as const;
BitsByLiteral
的类型是
const BitsByLiteral: {
readonly BIT0: 1;
readonly BIT1: 2;
readonly BIT2: 4;
}
whileBitsByExpression
的类型是
const BitsByExpression: {
readonly BIT0: number;
readonly BIT1: number;
readonly BIT2: number;
}
有什么办法吗?
解决方案
推荐阅读
- ms-access - MS Access 查询条件基于另一个查询中的特定字段
- raspberry-pi - 将整数转换为二进制以进行 SPI 传输
- android-studio - AndroidStudio 运行 Recorded Espresso 测试失败
- angular - RXJS:按队列请求 - ForkJoin
- r - 结合 ggplots 会为每个绘图显示完全相同的绘图图形
- python - python,torch,GAN,将张量解码为值
- javascript - 如何让我的 .js 文件读取其他文件的 HTML 变量,而不仅仅是一个?
- macos - 无法使用 brew 安装节点
- python-3.x - `gallery-dl` 在哪里加载它的配置?
- php - PHP Swoole协程,异步消息不异步