TypeScript 学习 -类型 - 9

声明合并

  • 成员变量合并:成员变量会合并,但类型必须一致。
  • 成员函数合并:如果函数签名不同,合并后的函数会是签名的联合类型。
  • 接口声明顺序:在同一个接口内按顺序合并;不同接口时,后声明的会覆盖前声明的。
  • 函数字面量优先级:如果有函数字面量,它们会优先合并。
ts 复制代码
interface Person {
  name: string;
}

interface Person {
  age: number;
}

interface Person {
  age: string; // 错误: 重复的属性 'age', 类型不兼容
}
ts 复制代码
interface Person {
  greet(name: string): void;
}
interface Person {
  greet(age: number): number; // 错误:类型签名不一致
}
const person: Person = {
  // greet(nameOrAge: string | number) {}, // 错误:类型签名不一致
  greet(nameOrAge: string | number): number {
    return 0;
  },
};
ts 复制代码
interface Person {
  name: string;
}
interface Person {
  age: number;
}
const person: Person = {
  name: 'Alice',
  age: 25,
};
相关推荐
学长毕设5 小时前
基于SpringBoot的青少年编程学习平台系统-附源码
spring boot·学习·青少年编程
小大宇5 小时前
Vue知识点6-computed计算属性
前端·javascript·vue.js
程序员海军5 小时前
尤雨溪 : Vue 4 已经在规划中了!
前端·javascript·vue.js
2601_949970696 小时前
HumanizeDuration 跨端三方库仓颉适配全流程
前端·javascript·flutter
天外飞雨道沧桑8 小时前
我在浏览器里练了一个 792 参数的大模型,它学会了补全 JavaScript
开发语言·javascript·ai·ecmascript·ai编程
小小de风呀8 小时前
de风——【从零开始学习Linux】(九):进程基础 —— 从冯诺依曼体系到 fork 创建进程
linux·学习
李某学编程8 小时前
基于ARM的微机原理学习笔记(一)
arm开发·笔记·学习
鶴哥只手遮天9 小时前
jQuery 4.0 源码架构与工程实践-第 01 章 · 全景与工程结构:一个 20 岁库的自省
前端·javascript·jquery
Song_RsHt9 小时前
Redis 与微服务,什么场景下无可替代
java·redis·后端·学习·微服务
inksci10 小时前
在线编辑表格,功能强大,json互转
前端·javascript·html