【发布时间】:2018-06-19 16:02:25
【问题描述】:
我有一个根据选项键值返回不同类型的方法。
class Test {
getData(options: { obj: true }): Object;
getData(options: { obj: false }): any[];
getData(): any[];
getData(options = { obj: false }): Object | any[] {
if (options.obj) {
return {};
} else {
return [];
}
}
}
当将obj 作为true 传递时,我将返回对象,否则返回数组。效果很好。
const instance = new Test();
const result = instance.getData({ obj: true }); // inffered as array
const result2 = instance.getData(); // inffered as object
问题是当我需要使用动态值时它会抛出一个错误:
boolean 类型不能分配给 false 类型
function getResult(obj: boolean = false ) {
return instance.getData({ obj });
}
有什么问题?
【问题讨论】:
标签: javascript typescript