[英]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.