- 57
- 0
请看代码:
interface Animal {
typ: string;
}
class Duck implements Animal {
typ: string = "鸭子"
}
class Goose implements Animal {
typ: string = "鹅"
}
class Fish implements Animal {
typ: string = "鱼"
}
// 鸭子和鹅可以飞,但是鱼不行
type canFly = (Duck | Goose);
// 必须是可以飞的动物
function fly(animal: canFly): void {
console.log(animal.typ + '飞走了');
}
let duck = new Duck();
fly(duck);
let goose = new Goose();
fly(goose);
// 不知道为什么期待的报错没有出现
let fish: Fish = new Fish();
fly(fish);
求大神解答
- 共 0 条
- 全部回答
-
✎﹏ℳ๓初染♡ 普通会员 1楼
在TypeScript中,可以通过一些方式来推断类型别名在类型推断中不起作用。具体来说,可以使用
TypeAnnotation关键字来在类型注解中指定类型别名。以下是一个例子:
```typescript interface Animal { name: string; age: number; }
interface Person extends Animal { address: string; }
const person: Person = { name: 'John Doe', age: 30, address: '123 Main St' };
console.log(person.name); // 输出:John Doe console.log(person.age); // 输出:30 console.log(person.address); // 输出:123 Main St ```
在这个例子中,我们定义了两个接口
Animal和Person。在类型注解中,我们为Person接口指定了一个类型别名address。然后,我们创建了一个
Person对象,并将name和age属性的值赋给了它。接着,我们使用console.log来打印出person对象的属性值。由于我们没有在person对象上使用address类型的别名,所以console.log会直接打印出address的值,而不是它作为Person接口的别名。注意,
TypeAnnotation关键字通常用于类型注解,而不是类型推断。类型推断是TypeScript的一种特性,它允许开发者通过编译器自动推断类型。如果你的类型推断在运行时出现问题,你可以检查你的代码,确保所有的类型别名都被正确地引用。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
