Generice Type断言(TypeScript Advanced)

时间:2018-06-12 21:31:26

标签: typescript generics

有没有办法根据错误值选择通用T或K?

let inputString = "I'm John, or johnny, but I prefer john.";
let switch1 = ["John", "Jack"];
let re = new RegExp(`\\b${switch1[0]}\\b`, 'gi');
console.log(inputString.replace(re, switch1[1])); // I'm Jack, or johnny, but I prefer Jack.

1 个答案:

答案 0 :(得分:0)

你不能,因为在执行阶段发现错误的价值,当打字稿已经被转换为javascript。事实上,泛型是打字的功能,并且不存在于已编译的javascript输出中,因此在执行javascript时无法从一个或另一个中进行选择。

您可以尝试扩展此界面并创建两个不同的界面,一个用于错误,另一个用于您的目标。