首页 > 解决方案 > 如何使用打字稿类型将对象中的数字字符串转换为数字

问题描述

这就是问题所在。可以说我有以下对象:

const x = {
    number1: '1',
    number2: '2',
    string1: 'one',
}

以及以下打字稿类型。

class params {
    number1: number;
    number2: number;
    string1: string;
}

是否有一种优雅的方法可以将x对象转换为params类型,以便将属性number1number2从字符串x转换为定义的数字params

标签: typescript

解决方案


恐怕您将不得不手动转换它,就像在 JavaScript 中一样。您将需要设置变量或类型的属性Params以确保类型检查。

 const y: Params = {
   number1: Number(x.number1),
   number2: Number(x.number2),
   string1: x.string1,
 }

另外,如果params仅用于类型检查,我建议您使用interface,而不是class. 这是因为 TypeScript 类存在于运行时,而接口仅在编译时存在。

interface Params {
  number1: number;
  number2: number;
  string1: string;
}

推荐阅读