我正在尝试编写一个NumericHelper.ts
,它返回带有可配置分数位数的正则表达式。
export class NumericHelper
{
public static GET_DECIMAL_PATTERN: string = (fractionDigits: number = 2) => `^([0-9]*(?:[\.|,| ][0-9]{0,${fractionDigits}})?)?$`;
}
这将返回以下错误,除非将其强制转换回any
。但为什么?该函数返回字符串。
类型'(fractionDigits ?: number)=>字符串'不可分配给 输入'string'.ts(2322)
答案 0 :(得分:1)
GET_DECIMAL_PATTERN
不是string
类型,它是返回字符串的函数:
export class NumericHelper
{
public static GET_DECIMAL_PATTERN: Function = (fractionDigits: number = 2) => `^([0-9]*(?:[\.|,| ][0-9]{0,${fractionDigits}})?)?$`;
}
答案 1 :(得分:1)
您将类型设置在错误的位置
class NumericHelper
{
public static GET_DECIMAL_PATTERN: Function = // function here
(fractionDigits: number = 2): string => // string here
`^([0-9]*(?:[\.|,| ][0-9]{0,${fractionDigits}})?)?$`;
}
我个人认为没有粗箭头的情况会更干净
class NumericHelper {
public static GET_DECIMAL_PATTERN (fractionDigits: number = 2): string {
return `^([0-9]*(?:[\.|,| ][0-9]{0,${fractionDigits}})?)?$`
}
}