【发布时间】:2018-07-28 11:09:48
【问题描述】:
function concat<T extends string | Buffer>(input: T[]): T | null {
let input0 = input[0];
switch (typeof input0) {
case "undefined":
return null;
case "string":
return input.join("");
}
return Buffer.concat(input);
}
AFAIK 上面的 switch 案例(类似于解决方案 here)会在运行时完成这项工作,但我的 IDE 抱怨最后两个返回语句。
例如input instanceof Buffer[] 也不行。
【问题讨论】:
-
Buffer定义在哪里? -
不,那是不是重复的。我已经阅读了那个问题,并且已经在我的代码中应用了接受的答案“使用第一个非空项目的自定义类型保护”。但仍有一个问题 - 通过here接受的答案解决。
标签: function typescript generics type-safety