Typescript:为什么我可以为声明的(接口)number对象参数分配字符串值

rsaldnfx  于 2023-03-04  发布在  TypeScript
关注(0)|答案(1)|浏览(100)

我已经声明了一个接口:

export interface DateArray {
    year    : number;
}

我在组件中声明了一个新变量,如下所示:

private dateArray: DateArray = {
    year: null
};

在我的组件中,我为dateArray.year赋值,如下所示:

this.dateArray.year = this.megaData[0][3];

现在我不明白的是,无论this.megaData[0][3]的值是什么(字符串、数字、数组),它都可以毫无问题地被赋值给this.dateArray.year
当我这样做:

this.dateArray.year = "A"

我得到一个错误"不能将字符串赋值给数字",但是当this.megaData[0][3]的值是"A"时,我没有得到错误,并且输出为:

this.dateArray.year = this.megaData[0][3];
        console.log("this.dateArray.year);

就是A
this.megaData现在只是定义为<any>,这可能是问题所在吗?

dced5bon

dced5bon1#

this.megaData现在只是定义为<any>,这可能是问题所在吗?
正确,因为any表示它也可以是或包含数字(* 属性year的声明类型 *),因此赋值不会生成类型不匹配错误。

相关问题