首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

分享 30 道 TypeScript 相关面的面试题

08、在定义对象形状时,您能区分interface和type吗? 答:interface和type都可以定义对象形状,但是它们有一些区别。interface更具可扩展性,允许声明合并。...它对于确保在使用配置对象或在组件或函数之间传递数据等场景中的不变性特别有用。 11、TypeScript 中的可区分联合有什么用处?...答案:可区分联合(也称为标记联合)是一种结合了联合类型、文字类型和类型保护的模式。 当一个对象可以有多个形状但共享一个公共属性(通常是文字类型)时,可以使用它们,该属性可用于缩小其确切形状。...,它允许读取位于连接对象链深处的属性值,而无需检查链中的每个引用是否有效。如果任何引用为 null 或未定义,则表达式会与未定义的值短路。 空合并运算符 (??)...这在您想要回退到默认值的情况下非常有用。 22、什么是映射类型,以及如何在 TypeScript 中使用它们? 答案:映射类型允许通过转换属性在现有类型的基础上创建新类型。

1K30

让你的TypeScript代码更优雅,这10个特性你需要了解下

下面是一个使用 isString 函数的示例,它可以区分传入的值是字符串还是数字: function printValue(value: number | string) { if (isString...1、区分联合类型的基本用法 区分联合类型的关键在于为每个类型定义一个共同的属性,这个属性可以用来区分不同的类型。...Shape 类型是 Square 和 Rectangle 的联合类型。 2、区分联合类型的应用 通过区分联合类型,我们可以在处理联合类型时利用 kind 属性进行类型检查。...这种方式避免了类型断言,保证了类型检查的准确性。 3、区分联合类型的优势 使用区分联合类型有以下几个优势: 类型安全:通过共同的区分属性,可以确保在处理不同类型时的类型安全性,避免类型错误。...提高可维护性:声明合并使得类型扩展更加方便,尤其是在使用第三方库时。 TypeScript 的声明合并是一个强大的特性,使你可以灵活地扩展和维护类型。

26910
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    从MySQL主键为何单调递增说起

    主键(primary key),一列 (或一组列),其值能够唯一区分表中的每个行。唯一标识表中每行的这个列(或这组列)称为主键。主键用来表示一个特定的行。...除MySQL强制实施的规则外,还应该坚持的最佳实践: 不更新主键列中的值 不重用主键列的值 不在主键列中使用可能会更改的值 例如,如果使用一个名字作为主键以标识某个供应商,当该供应商合并和更改其 名字时...,必须更改这个主键) 联合主键 好处 可以直观的看到某个重复字段的记录条数 主键A跟主键B组成联合主键 主键A跟主键B的数据可以完全相同,联合就在于主键A跟主键B形成的联合主键是唯一的。...联合主键体现在多个表上,复合主键体现在一个表中的多个字段。 复合主键 主键通常定义在表的一列上,但这并不是必需的,也可使用多个列作为主键。...而对于用户表来说,我们需要考虑的是作为主键的业务字段是否能够唯一标识一个人,一个人可以有多个email和手机号,一旦出现变更email或者手机号的情况,就需要变更所有引用的外键信息,所以使用email或者手机作为主键是不合适的

    2.1K30

    MySQL的主键详解

    主键(primary key) 一列 (或一组列),其值能够唯一区分表中的每个行。唯一标识表中每行的这个列(或这组列)称为主键。主键用来表示一个特定的行。...除MySQL强制实施的规则外,还应该坚持的最佳实践: 不更新主键列中的值 不重用主键列的值 不在主键列中使用可能会更改的值 例如,如果使用一个名字作为主键以标识某个供应商,当该供应商合并和更改其 名字时...,必须更改这个主键) 联合主键 好处 可以直观的看到某个重复字段的记录条数 主键A跟主键B组成联合主键 主键A跟主键B的数据可以完全相同,联合就在于主键A跟主键B形成的联合主键是唯一的。...联合主键体现在多个表上,复合主键体现在一个表中的多个字段。 复合主键 主键通常定义在表的一列上,但这并不是必需的,也可使用多个列作为主键。...一个属性可以为作为一个超键,多个属性组合在一起也可以作为一个超键。超键包含候选键和主键。 候选键 是最小超键,即没有冗余元素的超键。

    5K20

    MySQL索引详解(优缺点,何时需要不需要创建索引,索引及sql语句的优化)

    MySQL索引详解(优缺点,何时需要/不需要创建索引,索引及sql语句的优化) 一、什么是索引? 索引是对数据库表中的一列或多列值进行排序的一种结构,使用索引可以快速访问数据库表中的特定信息。...可以加快数据的检索速度 可以加速表与表之间的连接 在使用分组和排序进行检索的时候,可以减少查询中分组和排序的时间 四、缺点 创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。...联合索引:在多个字段上建立索引,能够加速查询到速度 八、索引和sql语句的优化 1、前导模糊查询不能使用索引, 如name like ‘%静’ 2、Union、in、or可以命中索引,建议使用in 3、...更新会变更B+树,更新频繁的字段建立索引会大大降低数据库性能。 “性别”这种区分度不太大的属性,建立索引是没有什么意义的,不能有效过滤数据,性能与全表扫描类似。 一般区分度在80%以上就可以建立索引。...优化的方法如下: 可以取前一页的最大行数的id,然后根据这个最大的id来限制下一页的起点。 比如此列中,上一页最大的id是866612。

    3.4K10

    【116期】MySQL索引优缺点、何时需要不需要创建索引、索引及sql语句的优化

    索引是对数据库表中的一列或多列值进行排序的一种结构,使用索引可以快速访问数据库表中的特定信息。 二、索引的作用?...可以加快数据的检索速度 可以加速表与表之间的连接 在使用分组和排序进行检索的时候,可以减少查询中分组和排序的时间 四、缺点 创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。...联合索引:在多个字段上建立索引,能够加速查询到速度 八、索引和sql语句的优化 1、前导模糊查询不能使用索引,如name like ‘%静’ 2、Union、in、or可以命中索引,建议使用in 3、负条件查询不能使用索引...更新会变更B+树,更新频繁的字段建立索引会大大降低数据库性能。“性别”这种区分度不太大的属性,建立索引是没有什么意义的,不能有效过滤数据,性能与全表扫描类似。一般区分度在80%以上就可以建立索引。...优化的方法如下: 可以取前一页的最大行数的id,然后根据这个最大的id来限制下一页的起点。 比如此列中,上一页最大的id是866612。

    2.5K30

    MySQL索引与SQL语句优化

    5、建立联合查询时,区分度最高的字段在最左边 6、如果建立了(a,b)联合索引,就不必再单独建立a索引。   ...更新会变更B+树,更新频繁的字段建立索引会大大降低数据库性能。   “性别”这种区分度不太大的属性,建立索引是没有什么意义的,不能有效过滤数据,性能与全表扫描类似。   ...一般区分度在80%以上就可以建立索引。区分度可以使用count(distinct(列名))/count(*)来计算。 12、利用覆盖索引来进行查询操作,避免回表。   ...被查询的列,数据能从索引中取得,而不是通过定位符row-locator再到row上获取,即“被查询列要被所建的索引覆盖”,这能够加速度查询。...优化的方法如下: 可以取前一页的最大行数的id,然后根据这个最大的id来限制下一页的起点。 比如此列中,上一页最大的id是866612。

    1.6K10

    关于5G接入网,看这一篇就够啦!

    根据统计,整个移动通信网络中,基站的能耗占比大约是72%。而基站里面,空调的能耗占比大约是56%。 ? 传统方式机房的功耗分析 也就是说,运营商的钱,大部分都花在基站、基础设施和电费上。...C-RAN下,基站实际上是“不见了”,所有的实体基站变成了虚拟基站。 所有的虚拟基站在BBU基带池中共享用户的数据收发、信道质量等信息。强化的协作关系,使得联合调度得以实现。...多点协作传输(CoMP,Coordinated Multiple Points Transmission/Reception)是指地理位置上分离的多个传输点,协同参与为一个终端的数据(PDSCH)传输或者联合接收一个终端发送的数据...DU:BBU的剩余功能重新定义为DU,负责处理物理层协议和实时服务。 简而言之,CU和DU,以处理内容的实时性进行区分。 ?...所以,才有了DU和CU这样的新架构。 依据5G提出的标准,CU、DU、AAU可以采取分离或合设的方式,所以,会出现多种网络部署形态: ?

    1.3K21

    MySQL学习笔记-基础介绍

    (5)表管理程序不记录最后被使用的 auto_increment值,但是会从头开始计数。即使对应MyISAM 和 innoDB 也是如此。MyISAM 和 innoDB 通常不再次使用序列值。...6.4.1、单张表联合查询 //联合查询Student表中Sno在[1,3]和[5,7]这两个范围的记录 select * from Students.Student where Sno between...in() 比较关键字 判断某列的取值是否为指定值中的一个。...默认情况下,全文索引的搜索执行方式不区分大小写,如果全文索引所关联的字段为二进制数据类型,则以区分大小写的搜索方式执行。 4、单列索引,在表的单个字段上创建索引。单列索引只根据该字段进行索引。...show create table t_dept; //验证表中索引是否被使用,执行结果中若possible_keys和key字段的值都是创建的索引名index_deptno,说明索引已存在,而且已经开始启用

    30610

    什么是最左前缀匹配?为什么要遵守?

    针对普通索引,其存储结构是在 B+树的每个非叶子节点上记录索引的值,而在 B+树的叶子节点上,则记录了索引的值和聚簇索引(主键索引)的值。...如: (这样图是简化的,实际上还有双向链表,具体的可以参考索引介绍的文章) 在联合索引中,比如联合索引 (age, name),同样也是构建了一棵 B+树。...在这棵 B+树中,非叶子节点中记录的是 name 和 age 两个字段的值,而在叶子节点中记录的是 name、age 两个字段以及主键 id 的值。...因此,是否使用索引跳跃扫描,实际上取决于 MySQL 优化器经过成本预估后做出的决定。 通常情况下,这种优化技术适用于联合索引中第一个字段的区分度较低的情况。但需要注意的是,并非绝对如此。...此外,在 MySQL 官网中还提到了索引跳跃扫描的其他一些限制条件: 表 T 必须至少有一个联合索引,但对于联合索引(A,B,C,D),A 和 D 可以为空,但 B 和 C 必须非空。

    66810

    www.xttblog.com MySQL InnoDB 索引原理

    2、接着我们删除键值为25的记录,该值还是Index Page中的值,因此在删除Leaf Page中25的值后,还应将25的右兄弟节点的28更新到Page Index中。 ?...可使用B+树索引的查询方式 全值匹配:与索引中的所有列进行匹配,也就是条件字段与联合索引的字段个数与顺序相同; 匹配最左前缀:只使用联合索引的前几个字段; 匹配列前缀:比如like 'xx%'可以走索引...列的选择性(区分度) 选择性(区分度)是指不重复的列值个数/列值的总个数,一般意义上建索引的字段要区分度高,而且在建联合索引的时候区分度高的列字段要放在前边,这样可以在第一个条件就过滤掉大量的数据,有利用性能的提升...注意&建议 主键推荐使用整型,避免索引分裂; 查询使用索引覆盖能够提升很大的性能,因为避免了回表查询; 选择合适的顺序建立索引,有的场景并非区分度越高的列字段放在前边越好,联合索引使用居多; 合理使用in...在 MySQL 5.0版本之前,假如没有建立相应的联合索引,是要走全表扫描的,但是在 MySQL 5.1后引入了一种优化策略为索引合并,可以在一定程度上利用表上的多个单列索引来定位指定行,其原理是将对每个索引的扫描结果做运算

    1.1K50

    知乎 Android 客户端 CICD 方面的实践

    可以看到这次打包是联合了 ModuleA 以及 ModuleB 组件提交的代码打包。...) 分支合并的问题 世界上最冤的 bug 不是字符串的值为 “null”,而是我已经在 release 上修了,但是代码没有合入到 develop。...限制不规范的提交 不规范的提交包括:资源过大,提交的资源是 png 而不是优化过的 webp,一些低像素的资源也提交过去(-hdpi,-mdpi 现今的设备基本上不会用到这些资源) githooks 中...,可以往 commit-msg 中写一些脚本,检查当前提交的文件内,是否出现上述问题(可以用下列方式获取到当前提交文件: git diff --cached --name-only --diff-filter...我们这边做的是: 每次合并代码之后,记录一下最新包的包大小以及包内信息,譬如 develop.detail release-1.2.3.detail 每次提 merge-request 往 develop

    2.9K44

    关于5G接入网,看这一篇就够啦!

    C-RAN下,基站实际上是“不见了”,所有的实体基站变成了虚拟基站。 所有的虚拟基站在BBU基带池中共享用户的数据收发、信道质量等信息。强化的协作关系,使得联合调度得以实现。...小区之间的干扰,就变成了小区之间的协作(CoMP),大幅提高频谱使用效率,也提升了用户感知。 ?...多点协作传输(CoMP,Coordinated Multiple Points Transmission/Reception)是指地理位置上分离的多个传输点,协同参与为一个终端的数据(PDSCH)传输或者联合接收一个终端发送的数据...DU:BBU的剩余功能重新定义为DU,负责处理物理层协议和实时服务。 简而言之,CU和DU,以处理内容的实时性进行区分。 ?...所以,才有了DU和CU这样的新架构。 依据5G提出的标准,CU、DU、AAU可以采取分离或合设的方式,所以,会出现多种网络部署形态: ?

    1.8K21

    MySQL索引优化实战

    索引从物理上可以分为:聚集索引,非聚集索引 从逻辑上可以分为:普通索引,唯一索引,主键索引,联合索引,全文索引 索引优化策略 不要在索引列上进行运算或使用函数 在列上进行运算或使用函数会使索引失效,从而进行全表扫描...,不要在索引列上使用函数,隐式类型转换在索引字段上做了函数操作,因此会全表扫描 那么如果id是int,执行下面这个语句是否会导致全表扫描呢?...可以建立(username, passwd, login_time)的联合索引,由于 login_time的值可以直接从索引中拿到,不用再回表查询,提高了查询效率 经常更改,区分度不高的列上不宜加索引...一般区分度在80%以上的时候就可以建立索引,区分度可以使用 count(distinct(列名))/count(*) 来计算 明确知道只会返回一条记录,可以加limit1 当查询确定只有一条记录时,可以加...索引的区分度是指,不重复的索引值和数据表的记录总数的比值。索引的区分度越高则查询效率越高,因为区分度高的索引可以让MySQL在查找时过滤掉更多的行。

    1.1K30

    MySQL命名、设计及使用规范--------来自标点符的《MySQL命名、设计及使用规范》

    5、如无说明,表必须包含create_time和modify_time字段,即表必须包含记录创建时间和修改时间的字段 6、如无说明,表必须包含is_del,用来标示数据是否被删除,原则上数据库数据不允许物理删除...其实对整型中的 M值与 ZEROFILL 属性结合使用时可以实现列值等宽。...显示宽度并不限制可以在列内保存的值的范围,也不限制超过列的指定宽度的值的显示。当结合可选扩展属性ZEROFILL使用时默认补充的空格用零代替。...它们的最大长度和是否尾部空格被保留等方面也不同。CHAR和VARCHAR类型声明的长度表示你想要保存的最大字符数。例如,CHAR(30)可以占用30个字符。...在存储或检索过程中不进行大小写转换。 VARCHAR列中的值为可变长字符串。长度可以指定为0到65,535之间的值。(VARCHAR的最大有效长度由最大行大小和使用的字符集确定。

    5.7K20

    大佬整理的mysql规范,分享给大家

    在 MySQL 中,数据库和表对就于那些目录下的目录和文件。因而,操作系统的敏感性决定数据库和表命名的大小写敏感。 Windows下是不区分大小写的。...如无说明,表必须包含create_time和modify_time字段,即表必须包含记录创建时间和修改时间的字段 如无说明,表必须包含is_del,用来标示数据是否被删除,原则上数据库数据不允许物理删除...其实对整型中的 M值与 ZEROFILL 属性结合使用时可以实现列值等宽。...显示宽度并不限制可以在列内保存的值的范围,也不限制超过列的指定宽度的值的显示。当结合可选扩展属性ZEROFILL使用时默认补充的空格用零代替。...VARCHAR列中的值为可变长字符串。长度可以指定为0到65,535之间的值。(VARCHAR的最大有效长度由最大行大小和使用的字符集确定。整体最大长度是65,532字节)。

    1.1K20

    《大数据之路》读书笔记:维度设计

    尽可能多地给出包含一些富有意义的文字性的描述。 区分数值型属性和事实。 尽量沉淀出通用的维度属性。 三、维度的层次结构 维度层次指的是某个维度表中属性之间存在的从属关系问题。...比如商品的类目可能是有层次的(一级类目、二级类目、三级类目等,尤其对于宝洁、联合利华等大的快消企业集团),同时类目、品牌和产品实际上也是有层次的。 那么维度建模如何处理这些层次结构呢? 1....(不建议使用,ETL加工逻辑复杂) 特殊维度 一、递归层次 维度递归层次,按照层次是否固定分为均衡层次结构和非均衡层次结构。...层次结构扁平化 通过建立维度固定数量级别的属性来实现,可以一定程度上解决上钻和下钻的问题。但可能存在以下上方面问题: (1)针对上钻和下钻之前,必须知道所属的类目层次。...保持维度主键不变,将多值属性放在维度的多个属性字段中。 维度主键发生变化,一个维度值存放多条记录。 五、杂项维度 将很多字段建立到一个维表中,在事实表中只需保存一个外键即可。

    82310

    面试必备,MySQL索引优化实战总结,涵盖了几乎所

    索引从物理上可以分为:聚集索引,非聚集索引 从逻辑上可以分为:普通索引,唯一索引,主键索引,联合索引,全文索引 索引优化策略 不要在索引列上进行运算或使用函数 在列上进行运算或使用函数会使索引失效,从而进行全表扫描...,不要在索引列上使用函数,隐式类型转换在索引字段上做了函数操作,因此会全表扫描 那么如果id是int,执行下面这个语句是否会导致全表扫描呢?...可以建立(username, passwd, login\_time)的联合索引,由于 login\_time的值可以直接从索引中拿到,不用再回表查询,提高了查询效率 经常更改,区分度不高的列上不宜加索引...一般区分度在80%以上的时候就可以建立索引,区分度可以使用 count(distinct(列名))/count(*) 来计算 明确知道只会返回一条记录,可以加limit1 当查询确定只有一条记录时,...索引的区分度是指,不重复的索引值和数据表的记录总数的比值。索引的区分度越高则查询效率越高,因为区分度高的索引可以让MySQL在查找时过滤掉更多的行。

    41410

    MySQL InnoDB索引:存储结构

    可使用B+树索引的查询方式 全值匹配:与索引中的所有列进行匹配,也就是条件字段与联合索引的字段个数与顺序相同; 匹配最左前缀:只使用联合索引的前几个字段; 匹配列前缀:比如like 'xx%'可以走索引...列的选择性(区分度) 选择性(区分度)是指不重复的列值个数/列值的总个数,一般意义上建索引的字段要区分度高,而且在建联合索引的时候区分度高的列字段要放在前边,这样可以在第一个条件就过滤掉大量的数据,有利用性能的提升...注意&建议 主键推荐使用整型,避免索引分裂; 查询使用索引覆盖能够提升很大的性能,因为避免了回表查询; 选择合适的顺序建立索引,有的场景并非区分度越高的列字段放在前边越好,联合索引使用居多; 合理使用in...在 MySQL 5.0版本之前,假如没有建立相应的联合索引,是要走全表扫描的,但是在 MySQL 5.1后引入了一种优化策略为索引合并,可以在一定程度上利用表上的多个单列索引来定位指定行,其原理是将对每个索引的扫描结果做运算...,总共有:交集、并集以及他们的组合,但是索引合并并非是一种合适的选择,因为在做索引合并时可能会消耗大量的CPU和内存资源,一般用到索引合并的情况也从侧面反映了该表的索引需要优化。

    1.2K20

    MySQL索引中的前缀索引和多列索引

    正确地创建和使用索引是实现高性能查询的基础,本文笔者介绍MySQL中的前缀索引和多列索引。...前缀索引 如果索引列的值过长,可以仅对前面N个字符建立索引,从而提高索引效率,但会降低索引的选择性。...计算方式如下 select N, COUNT(DISTINCT LEFT(x_name, N))/COUNT(*) FROM x_table 复制代码 其结果值越大,说明区分度越高,由下面的表格可以看出...当出现索引合并时表明表上的所有是有值得优化的地方,判断是否出现索引合并可以观察Extra列是否出现了如下信息 Using union(account_batch_batch_no_index,account_batch_source_system_index...); Using where 复制代码 如果是在AND操作中,说明有必要建立多列联合索引,如果是OR操作,会耗费大量CPU和内存资源在缓存、排序与合并上。

    4.4K00
    领券