首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

TypeScript-类型别名类型别名、接口异同

类型别名概述类型别名就是给一个类型起个 新名字, 但是它们都代表 同一个类型例如: 你的本名叫张三, 你的外号叫小三, 小三就是张三的别名, 张三和小三都表示同一个人type MyString = string...;let value: MyString;value = 'abc';value = 123;value = false;如上代码的含义给 string 类型起了一个别名叫做 MyString, 那么将来无论是...= {x: '123', y: 456};value = {x: false, y: 456};如上代码的含义,定义了一个对象泛型别名,该对象当中有两个属性 x、y, 然后定义了一个该别名的变量,泛型类型指定的...属性 或 方法type MyType = { name: string; say(): void;}interface MyInterface { name: string;..., boolean, number];type 不会自动合并interface 的自动合并可查看 TypeScript 当中的 30.TypeScript-接口合并现象 这里就只演示 type 的不会自动合并的不同点

20040

TypeScript中使用类型别名

在很多打包工具或者使用cli创建的项目中都会提供类型别名,例如Vue-cli中使用@可以代表绝对路径src。...但是在使用TypeScript开发Node.js项目中却没有这个选择,当然我们可以在tsconfig.json中设置path参数,但是这个只是路径不报错和有利于路径提示,在ts-node运行时还是会报错...,社区中提供了一个叫typescript-paths的插件来解决问题,但是这个插件对增量编译非常不友好(ts在项目大了之后全量编译随便改一点就要等2分钟),对此我们可以使用插件module-alias来解决...1.首先我们依然是在tsconfig.json中设置ts的路径别名,这是是可以让ts不报错并且有良好的路径提示。...("@", __dirname); Copy TypeScript image.png 整个配置可以配置多个别名,同时可以编写回调函数。

81920

类型别名与字面量类型_TypeScript笔记10

PhoneBook = PhoneBookItem[]; let book: PhoneBook = [ ['Lily', '1234'], ['Jean', '1234'] ]; type关键字能为现有类型创建一个别名...right: Tree; } interface ITree { value: T; left: ITree; right: ITree; } 但存在一些本质差异: 类型别名并不会创建类型...,而接口会定义一个新类型 允许给任意类型别名,但无法给任意类型定义与之等价的接口(比如基础类型) 无法继承或实现类型别名(也不能扩展或实现其它类型),但接口可以 类型别名能将多个类型组合成一个具名类型...if (x === '1' && x === '2') { //... } } 这种类型完整性补充让TypeScript能够更细致地“理解”(静态分析)代码含义,进而发现一些不那么直接的潜在问题...能够满足完整性覆盖要求,但需要额外定义一个assertNever函数 P.S.关于Never类型的更多信息,见基本类型_TypeScript笔记2 此外,还有一种不那么准确,但也有助于检查完整性的方法

1.2K30

TypeScript入门——扩展类型之枚举

扩展类型——枚举 在上一篇文章中聊到了很多TS基础类型,那为什么又出现了扩展类型枚举,我们都知道任何东西都不是平白无故就出现的,都是为了解决特定的问题。...枚举只是扩展类型其中之一,比如说还有类型别名,接口,类 那么枚举是什么意思呢? 枚举就是把一卡车西瓜一个一个摆在摊子上的过程。 有什么作用?...在类型约束位置会产生重复代码,可以使用类型别名解决该问题 举个栗子: 我们在代码中定义一个gender变量,类型约束男或者女,gender只能赋值男或者女,其它值不行,接下来有个查询用户的函数searchUsers...,但是在给变量赋值的时候只能赋值真实的值,逻辑含义的值不变,但真实的值却变了,就产生了大量的修改,这个问题靠类型别名是没法解决的 3....如下: 然而之前的类型别名是做不到的,因为类型别名在编译的时候会消失,而枚举则不会。

57240

TypeScript基础(四)扩展类型 - 类

引言--TypeScript是一种静态类型的编程语言,它是JavaScript的超集,可以编译成纯JavaScript代码。...类-类是一种模板或蓝图,用于创建具有相同属性和方法的对象。在TypeScript中,可以使用关键字class来定义一个类。类可以包含属性(成员变量)和方法(成员函数)。...构造函数是一种特殊类型方法,在创建对象时被调用。在上面的例子中,我们使用关键字constructor定义了一个构造函数,并在其中接收一个参数并将其赋值给属性name。...访问修饰符在TypeScript中,类的访问修饰符用于控制类的属性和方法的可访问性。TypeScript提供了三种访问修饰符:public、private和protected。...总结--TypeScript的类、继承、访问修饰符和访问器在面向对象编程中起着重要的作用,可以帮助开发者更好地组织和管理代码。类:类是一种模板或蓝图,用于创建具有相同属性和方法的对象。

28530

【C 语言】数据类型本质 ( 数据类型别名 | typedef 关键字 | 复杂数据类型设置别名 | 简单数据类型设置别名 )

文章目录 一、typedef 关键字 1、复杂数据类型设置别名 2、简单数据类型设置别名 二、代码示例 一、typedef 关键字 ---- 1、复杂数据类型设置别名 使用 typedef 关键字...复杂数据类型 定义别名 : 结构体前面加上 typedef 关键字 , 结构体类型声明最后带上 数据类型别名 ; 注意 : 定义的别名 可以与 结构体类型名称 相同 ; /* * 定义结构体, 并且为其定义别名...* 别名可以与结构体的名字相同 * 将 struct student2 数据类型重命名为 student2 类型 * 可以直接使用 student2 作为数据类型 , * 不比带上 struct...typedef 定义别名 , 定义类型时 , 必须带 struct 关键字 , 如下 : struct student2 s2; 2、简单数据类型设置别名 使用 typedef 关键字 , 简单类型进行重命名..., 重命名的 数据类型别名 , 使用方式 与 简单类型 一模一样 ; /* * 对简单类型进行重命名 * 将 int 数据类型重命名为 u_32 类型 */ typedef int u_32;

54410

C++类型建⽴别名的⽅式

使⽤预处理器: #define BYTE char 预处理器在编译程序时用char替换所有的BYTE;等价于使BYTE成为char的别名使⽤C++(和C)的关键字typedef来创建别名:通用格式...: typedef typeName aliasName;例如:typedef char byte;//使byte成为char的别名换句话说,如果要将aliasName作为某种类型别名,可以声明aliasName...,如同将 aliasName声明为这种类型的变量那样,然后在声明的前⾯加上关键字typedef。...它能够处理更复杂的类型别名,这使得与使⽤#define相 ⽐,使⽤typedef是⼀种更佳的选择—有时候,这也是唯⼀的选择。 注意,typedef不会创建类型,⽽只是已有的类型建⽴⼀个新名称。...如果将word作为 int的别名,则cout将把word类型的值视为int类型

35930

类型即正义:TypeScript 从入门到实践(三):类型别名和类

git@github.com:tuture-dev/typescript-tea.git cd typescript-tea && npm install && npm start 类型别名 就像我们为了在平时开发中更加灵活而创建变量或者干掉硬编码数据一样...,TS 我们提供了类型别名,它允许你类型创建一个名字,这个名字就是类型别名,进而你可以在多处使用这个别名,并且有必要的时候,你可以更改别名的值(类型),以达到一次替换,多处应用的效果。...,而且这个 n 的类型可能会变化,因为我们的函数可能扩展,所以如果我们用一个类型别名把这个 n 的类型表示出来,那么就类似我们用变量替代了硬编码,可扩展性就更强了,我们马上来尝试一下: type NameParams...且只需要修改一下 Name 的值 number 类型就可以了,所有其他的 Name 类型会自动变化。...接着我们在 src/App.tsx 里面导入我们的 MenuKey 类型别名,并替换对应的 onClick 的参数 key 的类型注解 MenuKey : import React, { useRef

2.8K30

TypeScript基础(三)扩展类型-接口和类型兼容性

接口--TypeScript的接口:用于约束类、对象、函数的契约(标准)和类型别名一样,接口,不出现在编译结果中在TypeScript中,接口(Interface)用于定义对象的结构和类型。...这意味着一旦创建了该对象,就无法修改这些属性的值。总结一下,TypeScript中的接口用于定义对象的结构和类型。它可以描述对象的属性、方法、函数类型、可选属性和只读属性等特性。...Manager;const employeeManager: EmployeeManager = { name: "John", id: 123, department: "HR",};在上面的示例中,我们创建了三个类型别名...类型,可以调用run方法(pet as Fish).swim() // 断言Fish类型,可以调用swim方法在上面的例子中,getPet函数返回一个Cat或Fish类型的值。...我们使用类型断言将pet断言Cat或Fish类型,并根据具体的类型调用相应的方法。总结起来,类型断言是一种在TypeScript中明确指定值的具体类型的方式。

23840

Linux系统 命令配置别名方法

.复杂命令使用更加方便 问题:rm配置别名 do not use rm即运行rm命令的时候 系统提示 do not use rm 。...1.单独的想输出do not use rm到屏幕界面 要用到的命令 echo [root@liuhao ~]# echo "do not use rm" do not use rm [root@liuhao...r /data/oldboy.txt do not use rm -r /data/oldboy.txt [root@liuhao ~]# 直接使用 rm 无法删除文件 7.2如何删除文件 方法一...[root@liuhao ~]# \rm /data/oldboy.txt \ 表示临时取消别名 方法二 [root@liuhao ~]# which rm [root@liuhao ~]...# /bin/rm /data/liuhao.txt which rm 可以查看 rm命令的绝对路径 总结 以上所述是小编给大家介绍的Linux系统 命令配置别名,希望对大家有所帮助,如果大家有任何疑问请给我留言

1.7K41

【Rust 基础篇】Rust类型别名类型赋予新的名字

本篇博客将深入探讨Rust中的类型别名,包括类型别名的定义、使用场景、使用方法以及注意事项,以便读者了解如何在Rust中使用类型别名来赋予类型新的名字。 1. 什么是类型别名?...在Rust中,类型别名是一种用于给现有类型赋予新的名字的特性。通过类型别名,我们可以为现有类型创建一个新的名称,并在代码中统一使用新的名称来代替复杂的类型。...2.2 统一类型名称 当多个部分的代码使用相同的类型时,类型创建一个类型别名可以统一类型的名称,使代码更加清晰和易于理解。...使用方法 3.1 定义类型别名 要使用类型别名,需要使用type关键字定义新的类型别名。...注意事项 4.1 类型别名类型安全性 类型别名不会引入新的类型,只是现有类型创建一个新的名称。因此,类型别名并不会影响类型安全性,变量的类型检查仍然会按照原始类型进行。

26830

TypeScript基础(二)扩展类型-枚举及其位运算

本文将介绍字面量类型的问题、类型别名的局限以及枚举的优缺点及示例详细说明枚举的用处,以及扩展知识枚举的位运算。 字面量类型的问题 字面量类型有一些局限性: 1....,type类型别名在某些情况下可以提供更好的灵活性和可读性。...使用枚举可以清晰地表达意图或创建一组有区别的用例。 TypeScript支持数字的和基于字符串的枚举。 如何定义一个枚举: 在TypeScript中,可以使用关键字enum来定义一个枚举。...这种方式可以简化代码,并提供更灵活和可扩展的权限控制机制。 总结一下 TypeScript中的枚举是一种用于定义一组具有命名值的常量的数据类型。...type类型别名相对于字面量具有更大的灵活性和可读性,但在某些情况下可能会导致代码变得复杂和难以维护。枚举提供了一种更简单和直观的方式来定义一组常量值,但在动态扩展和复杂操作方面有一些限制。

17960

TypeScript 类型体操:合并映射类型的处理结果联合类型

索引类型TypeScript 中的常见类型,它是聚合多个元素的类型,对象、类、元组等都是索引类型。...它可以对索引类型的索引和值做一些变换,然后产生新的索引类型。...: TypeScript 也内置了很多基于映射类型实现的工具类型,比如 Partial、Required 等。...总之,会了映射类型就能够对索引类型做各种变换了。 但是,这些都是对索引类型整体做的变换,变换的结果依然是一个索引类型。 有的时候是想把它们分开的。比如这种需求: 希望能把每个索引给分开。...总结 索引类型TypeScript 中的常见类型,可以通过映射类型的语法来对它做一些修改,生成新的索引类型

1.6K40

TypeScript 演化史 -- 8】字面量类型扩展 和 无类型导入

如果 TypeScript let 变量推断一个字面量类型,那么尝试指定的值以外的任何值赋值都会在编译时产生错误。...: 字符串字面量类型扩展 string 类型 数字字面量类型扩展 number 类型 布尔字面量类型扩展 boolean 类型 枚举字面量类型扩展包含枚举的类型 到目前为止,咱们一直在研究字面量类型扩展...非扩展字面量类型 可以通过显式地将变量标注字面量类型创建扩展字面量类型的变量 const stringLiteral: "https" = "https"; // 类型 "https" (非扩展)...在下面的例子中,一个数组是由两个可扩展字符串字面量类型的变量创建的: const http = "http"; // Type "http" (可扩展) const https = "https"; /..." (非扩展) 现在,first 和 second 被推断各自的非扩展字符串字面量类型

1K10
领券