繁体   English   中英

给变量赋常数

[英]Assign constant value to a variable

我在TypeScript文件中声明了一个常量,稍后需要将它们放入变量中,但是我无法弄清楚它是如何完成的。

这是我的代码:

const Color: {} = {
  RED: {
    CODE: "RCB",
    PRICE: 15.70
  },
  BLUE: {
    CODE: "BBC",
    PRICE: 18.70
  },
  GREEN: {
    CODE: "GTA",
    PRICE: 13.70
  },
};
let price: Color = Color.RED.PRICE;
console.log(price);

let price: Color = Color.RED.PRICE; 无法正常工作,我收到以下错误消息:

Cannot find name Color

和:

Property RED does not exist on type '{}'

您可以使用显式类型注释来告诉打字稿编译器Color是一个空对象( : {} )。 您只需要删除它,编译器就会推断出变量的正确类型。

const Color = {
  RED: {
    CODE: "RCB",
    PRICE: 15.70
  },
  BLUE: {
    CODE: "BBC",
    PRICE: 18.70
  },
  GREEN: {
    CODE: "GTA",
    PRICE: 13.70
  },
};
let price  = Color.RED.PRICE;
console.log(price);

price也是一个数字,同样,您可以让编译器进行推断。

如果要声明一个变量,该变量是Color对象中的属性之一,则可以使用类型查询:

let red: typeof Color[keyof typeof Color]  = Color.RED;

typeof Color得到推断类型的常量,而[keyof typeof Color]告诉我们希望所有物业类型的联合编译器Color

我们还可以将此类型放在别名中以供以后使用:

type ColorMember = typeof Color[keyof typeof Color];
let red: ColorMember  = Color.RED;

像这样做 :

const Color = {
   RED: {
     CODE: "RCB",
     PRICE: 15.70
   },
   BLUE: {
     CODE: "BBC",
     PRICE: 18.70
   },
   GREEN: {
     CODE: "GTA",
     PRICE: 13.70
   },
 };
var price = Color.RED.PRICE; 

console.log(price); //15.70

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM