typescript - TypeScript:获取联合可能类型的名称(作为字符串)?
问题描述
是否可以获得联合可能类型的名称?
鉴于我已经定义了这些接口和类型别名:
// https://basarat.gitbook.io/typescript/type-system/discriminated-unions
interface Square {
kind: "square";
size: number;
}
interface Rectangle {
kind: "rectangle";
width: number;
height: number;
}
type Shape = Square | Rectangle;
我可以得到这样的字符串联合吗?
type ShapeName = 'Square' | 'Rectangle';
解决方案
你可以这样做:
interface Square {
kind: "square";
size: number;
}
interface Rectangle {
kind: "rectangle";
width: number;
height: number;
}
type Shape = Square | Rectangle;
type ShapeName = Shape['kind'] // 'square' | 'rectangle';
请记住,除非您映射一些方法,否则您无法获取接口名称。
推荐阅读
- sql - 如何强制 LEFT OUTER JOIN 返回 NULL 或空?
- html - 如何使用 nth-child 更改每隔一个 wordpress 帖子的位置?
- python - 使用 python3 发送一封简单的电子邮件
- rust - 如何从常量函数内部打印中间值以进行调试?
- python-3.x - Apache Kafka Python - self.async
- webpack - 将 postcss-loader 从 3.0.0 更新到 4.1.0 后 webpack.code 构建被破坏
- php - 如何阻止 PHP include() 函数重定向?
- .net-core - PrivateAssets='All' 是什么意思?
- python - 获取 numpy 二维数组中与零相邻的所有元素的索引
- c - 远程本地任务栏