请教:public var: any = []与public var: any[] = []的区别是什么?
两种TypeScript变量声明方式的区别
第一种声明:public var: any = [];
这里变量的类型是any,意味着该变量完全不受TypeScript的类型约束。后续可以把它赋值为任何类型的值,比如数字、字符串、对象等,都不会触发类型错误。示例:
public var: any = []; var = 123; // 合法 var = "hello"; // 合法 var = { name: "test" }; // 合法
第二种声明:public var: any[] = [];
这里变量的类型是any[],表示它必须是一个数组,不能被赋值为非数组类型的值,但数组内部的元素可以是任意类型。如果尝试给它赋值非数组内容,TypeScript会直接报错。示例:
public var: any[] = []; var.push(1); // 合法,数组元素可以是数字 var.push("world"); // 合法,数组元素可以是字符串 var = 123; // 报错,不能将类型“number”分配给类型“any[]”
核心差异总结
any类型:变量本身无任何类型限制,值可以是任意类型any[]类型:变量被约束为数组类型,只能赋值数组,但数组元素无类型限制
内容的提问来源于stack exchange,提问作者San
相关产品推荐
相关产品推荐

