javascript - 如何使用泛型传递任何类型?
问题描述
再会
尝试处理泛型
有2种
TUserInfo
type TUserInfo = {
id: num,
readonly fname: string,
readonly lname: string
}
TBody
type TBody = {
success: boolean,
user?: any
}
告诉我如何将任何类型传递给TBody
(例如,TUserInfo
)。并且user
应该具有相同的类型而不是any
. 先感谢您
解决方案
我认为在这种情况下最好使用有区别的工会:
export interface User {
id: number,
fname: string,
lname: string
}
type Response<T> =
| {
success: true;
user: T
}
| {
success: false
}
type Result = Response<User>
declare var result: Result
if (result.success) {
result.user
} else {
result.success // false
result.user // error
}
我愿意打赌success
如果false
-user
属性应该是ubdefined
.
推荐阅读
- javascript - Prismjs 高亮文件
- python - 在条件是与集合匹配百分比的选择行中的性能
- mysql - 将 6 个月添加到 mysql 中的 CURRENT_TIMESTAMP
- java - 如何从 HackerEarth 优化这个练习?
- go - go语言读取并合并两个yaml文件
- bash - bash 修复嘈杂的数据法语字符
- xslt - 如何使用 xslt 在 c 数据中包装输入 xsml
- php - 更新集合的最佳实践
- odoo - 如何通过编码在 odoo ir.attachment 模型中上传 zip 文件?
- selenium - Microsoft 测试管理器的界面,如 Selenium