在TypeScript中创建字面量时定义对象类型
大家好!我最近开始学习TypeScript,遇到了一个让我感到困惑的问题。当我使用字面量创建对象时,我想明确指定其类型,但不知道如何正确操作。\n\n以下是一个例子:我有一个接口`User`,我想创建一个类型为`User`的对象`user`。我尝试了几种方法,但不确定哪种是正确的以及它们之间的区别。\n\n```typescript\ninterface User {\n name: string;\n age: number;\n}\n\n// 方法1:声明后添加类型注解\nconst user1: User = {\n name: 'Алексей',\n age: 30\n};\n\n// 方法2:类型断言\nconst user2 = {\n name: 'Мария',\n age: 25\n} as User;\n\n// 方法3:不指定类型\nconst user3 = {\n name: 'Иван',\n age: 35\n};\n```\n\n问题:\n1. 这些方法之间有什么区别?\n2. 哪种方法更推荐?\n3. 为什么TypeScript在某些情况下允许添加额外属性,而在其他情况下不允许?\n\n特别让我困惑的是,当我想将对象传递给函数时,情况会有所不同。