TypeScript 中的 any 与 Object 有什么区别?
TypeScript是一种开源编程语言。它是 JavaScript 语言的超集。 TypeScript 专为开发大型应用程序而设计。
any:它是 TypeScript 中的内置数据类型,有助于描述我们在编写代码时不确定的变量类型。
尽管数据类型“任何”很有用,但不应不必要地使用它。
- 句法:
var x: any; // This means x has no interface.
- 特征:
- 当没有可用的类型定义时,可以使用此数据类型。
- 'any' 数据类型可用于表示任何 JavaScript 值。
- 示例:下面的代码说明了 TypeScript 中的任何数据类型:
- 代码 1:
- 输出:
Geeksforgeeks
- 代码 2:
- 输出:
4
对象:它描述了功能,对象有助于表示除数字、字符串、布尔值、大整数、符号、未定义和空值之外的所有非原始类型。在 TypeScript 中,对象(O 大写)不同于对象(O 小写)。
- 句法:
var y: Object; // This means y has Object interface.
- 特征:
- Object 公开了 Object 类中定义的函数和属性。
- 对象是一种更具体的声明方式。
- 示例:下面的代码说明了 TypeScript 中的对象:
- 代码 1:
- 输出:
11 XYZ
- 代码 2:
- 输出:
102 ABC 10000
- 代码 1:
TypeScript 中 any 和 Object 的区别:
any | Object |
---|---|
If you employ ‘any’ to a nomethod() function you are basically telling the transpiler that no information will be provided regarding what’s stored in it. Therefore the transpiler doesn’t restrict anything and it transpiles fine. | The Object class doesn’t have a nomethod() function, therefore the transpiler will generate a miscalculation. |
any is way more flexible to use than Object. | Object is way more specific in declaration than any. |
any does not ignore any compile time checks . | Objects take more time to compile. |