第二种情况是什么问题?
function f(x) {
return (x as string).toLocaleUpperCase();
}
console.log("hello: "+ f("mr.")); // hello: MR.
console.log("hello: "+ f(0));
未捕获的TypeError:x.toLocaleUpperCase不是函数
在f(:2:14)
在:5:25
在HTMLButtonElement.excuteButton.onclick>(https://www.typescriptlang.org/play/playground.js:247)
答案 0 :(得分:0)
据我了解,您的打字稿代码被转录为以下javascript代码:
function f(x) {
return x.toLocaleUpperCase();
}
console.log("hello: " + f("mr.")); // hello: MR.
console.log("hello: " + f(0));
并且由于数字(如0),没有toLocalUpperCase
字段,因此会出现错误。
我不确定这是否是最适合打字稿的方式,但这是一种适用于您两种情况的替代方法:
function f(x) {
return x.toString().toLocaleUpperCase();
}
console.log("hello: "+ f("mr.")); // hello: MR.
console.log("hello: "+ f(0));