[英]Type 'string' is not assignable to type 'number'.ts(2322)
我是 typescript 的新手,并试图弄清楚如何处理此错误。 我理解它为什么会发生,但找不到正确的方法来处理这个问题。
export function intToString(num: number): string {
num = num.toString().replace(/[^0-9.]/g, ``);
if (num < 1000) {
return num;
}
const si = [
{ v: 1e3, s: `K` },
{ v: 1e6, s: `M` },
{ v: 1e9, s: `B` },
{ v: 1e12, s: `T` },
{ v: 1e15, s: `P` },
{ v: 1e18, s: `E` },
];
let index;
for (index = si.length - 1; index > 0; index--) {
if (num >= si[index].v) {
break;
}
}
return (
(num / si[index].v).toFixed(2).replace(/\.0+$|(\.[0-9]*[1-9])0+$/, `$1`) +
si[index].s
);
}
错误:
(parameter) num: number
Type 'number' is not assignable to type 'string'.ts(2322)
问题主要出在这部分。 您正在返回“num”,这是您输入的数字类型。 但是您的 function 在这里需要一个字符串类型 output 。
if (num < 1000) {
return num;
}
这应该解决它
export function intToString(num: number): string {
if (num < 1000) {
return num.toString();
}
const si = [
{ v: 1e3, s: `K` },
{ v: 1e6, s: `M` },
{ v: 1e9, s: `B` },
{ v: 1e12, s: `T` },
{ v: 1e15, s: `P` },
{ v: 1e18, s: `E` },
];
let index;
for (index = si.length - 1; index > 0; index--) {
if (num >= si[index].v) {
break;
}
}
return (
(num / si[index].v).toFixed(2).replace(/\.0+$|(\.[0-9]*[1-9])0+$/, `$1`) +
si[index].s
);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.