Avatar ·

在 TypeScript 中:`any` 和 `Object` 有什么区别,何时使用?

大家好!我刚开始学习 TypeScript,对 `any` 和 `Object` 这两个类型感到困惑。乍一看它们很相似——都允许存储任何内容。但我感觉这不对,它们之间有一个重要的区别。 下面是一个让我困惑的例子。我写了一个函数,它应该接受任何类型的数据并直接返回它: ```typescript function identityAny(value: any): any { return value; } function identityObject(value: Object): Object { return value; } ``` 两个函数都能工作。但当我尝试调用它们并使用结果时,我注意到了一些奇怪的行为。如果我把一个数字传给 `identityAny`,我可以正常调用数字的方法: ```typescript let numAny = identityAny(42); numAny.toFixed(2); // 正常工作 ``` 但如果我把一个数字传给 `identityObject`,TypeScript 会报错: ```typescript let numObj = identityObject(42); numObj.toFixed(2); // 错误:类型 'Object' 上不存在属性 'toFixed' ``` 虽