typescript - 如果通用字符串参数是文字字符串,则返回类型值,如果不是,则返回其他类型
问题描述
我的情况有点复杂,我有一个Options
带有一些键和值的界面。我想创建一个函数,它只有一个参数keyof Options
,但返回类型应该不同,如果参数是fields
,它应该返回一个对象,否则,它应该返回一个布尔值。但我的测试不成功:/
我的测试:
interface Options {
fields: string;
someOtherKeys: number;
someOtherKeys2: number;
// ...
}
function myFunction<K extends keyof Options(key: K): K extends "fields" ? {key: boolean} : boolean {
if (key === 'fields') return {key: true};
else return false;
}
// This is a simplified test, not my real code.
我在代码上遇到奇怪的错误,例如:
对于第一行:Type '{ key: true; }' is not assignable to type 'K extends "fields" ? { key: boolean; } : boolean'.
对于第二行:Type 'false' is not assignable to type 'K extends "fields" ? { key: boolean; } : boolean'.
解决方案
推荐阅读
- flutter - 如何在 Flutter 中使用来自 Web 的数据设置 Dropdownbutton 的项目?
- vb.net - 按另一个列表(T2)排序列表(T1)
- java - 如何从文件系统加载类文件并在类池中使用它?
- go - 如何写一个antlr4访问者
- asp.net-core - serilog 无法将自定义属性添加到数据库表
- mongodb - 在 MongoDB 中使用变更流时获取事务中涉及的所有文档
- excel - 有没有办法在作为字符串变量的输出中打印一个范围?
- python - 为“x”赋值不计算总和
- android - 重命名导出的 Intent 服务
- powershell - Powershell Hashtable:无法将值“System.Collections.Hashtable”转换为类型“Microsoft.PowerShell.Cmdletization.GeneratedTypes”