type A = {
type: 'decimal',
value: number[]
}
type B = {
type: 'hex',
value: string[]
}
const range: A | B = {
value: [0, 127],
type: 'decimal'
}
function transform(range: A | B) {
if (range.type === 'hex') {
range.type = 'decimal'
range.value = [parseInt(range.value[0], 16), parseInt(range.value[1], 16)];
}
}
transform 函数的作用是如果发现类型是 16 进制的,会把 value 转化为 10 进制的。上面的实现会让 typescript 报错,如何更好地实现 transform 函数让 typescript 不报错