我有以下代码:
type Period = "day" | "month" | "year";
let myPeriod: Period = "day";
const anyValue: any = {period: "wrong"};
myPeriod = anyValue.period;
console.log(myPeriod);
我希望myPeriod
仅具有值day
,month
或year
。
但是控制台会打印出wrong
。
无论何时myPeriod
可能不是day
,month
或“ year”之一,我如何修改我的代码以返回编译时错误?
(如果我尝试使用类似let myPeriod: Period = "wrong"
的方法,它确实会在编译时捕获错误)
答案 0 :(得分:1)
如果您输入的内容为any
,则根据定义它可以分配给任何其他类型。同样,也可以访问任何属性,并且所访问的属性的类型为any
。
一般规则是避免使用any
,如果您确实拥有未知类型,请使用限制性更强的unknown
(unknown
与{{参见here 1}})
就您而言,尽管删除any
:
any