在我的TypeScript应用程序中,我使用了一个库函数(用JavaScript编写),它可以返回string
(1个结果)或string[]
(几个)。有没有办法在TS中表示这一点而不会回到any
?
目前我只使用values: string[]
,但这并不能恰当地代表标量结果的可能性。
答案 0 :(得分:1)
从TypeScript 1.0开始,没有简单的方法来建模具有不兼容的不同返回类型的函数(您可以定义interface
例如,返回共享公共基类型的对象,但是数组和字符串不)。
您需要使用any
来表示返回的值。
您可以在CodePlex上关注并投票this,这是建议实施类型联盟之类的东西。
答案 1 :(得分:1)
如果传入的参数的类型或数量控制输出将是什么,则只能这样做。这是因为TypeScript支持函数重载。例如:
declare function a():number;
declare function a(f:number):number[];
var foo = a(); // number
var bar = a(123); // number[]