【发布时间】:2020-12-23 06:55:16
【问题描述】:
我目前正在学习 TypeScript,我正在尝试在 Codewars 上解决这个 Kata。我能够在 JavaScript 中解决它,但是当我尝试在 TypeScript 中解决它时,我收到了一个错误,如下所述。我使用与我的 JavaScript 答案相同的方法来回答 TypeScript 版本。
问题来了:给定一个数字,我要返回最大的数字。所以如果我输入 213,我应该返回 312,如下所示:
maxNumber (213) ==> return (321)
这是我为 JavaScript 提出的解决方案。
function maxNumber(number) {
var num = String(number).split('').sort().reverse().join('');
return num;
}
const answer = maxNumber(1234)
console.log(answer)
//Output: 4321
我尝试了同样的方法,但在 TypeScript 中,但我不断收到错误消息:Type 'string' is not assignable to type 'number'。
export function maxNumber(n: number): number {
var num = String(n).split('').sort().reverse().join('');
return num;
}
const answer = maxNumber(1234)
console.log(answer)
然后我对该错误的响应是获取正在输入的数字,将其转换为字符串,然后使用 split 方法将其转换回数组内的数字,但我收到相同的错误消息.
export function maxNumber(n: number): number {
var num = n.toString();
var numNew = num.split('').sort().reverse().join('');
return numNew;
}
const answer = maxNumber(1234)
console.log(answer)
我知道它在说什么,但我无法将类型字符串分配给n,然后返回一个数字。有没有办法来解决这个问题?我知道由于使用了 TypeScript,它应该会发现这样的错误,而仅使用 JavaScript 时可能找不到。
【问题讨论】:
-
那个函数确实返回一个字符串,你期待什么?
-
TypeScript 并没有抱怨
num是一个应该是字符串的数字,而是numNew是一个应该是数字的字符串。
标签: javascript typescript