首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏黯羽轻扬

    this类型_TypeScript笔记11

    一.this也是一种类型! 出了当前类/接口的上下文,this的类型就是A<this: A>,类型兼容性等与泛型一致 所以,this类型就像一个带有类派生关系约束的隐式类型参数 三.Function this type 除了类/接口外 ,this类型还适用于普通函数 不同于class this type通常隐式发挥作用(如自动类型推断),function this type大都通过显式声明来约束函数体中this值的类型: This-types 实现原理 把this显式地作为函数的(第一个)参数,从而限定其类型,像普通参数一样进行类型检查。 ) 追踪context类型 有了this类型,bind、call、apply等场景也能正确维持类型约束,要求当前函数this与传入的目标对象类型一致: apply<T, A extends any[],

    1.1K20发布于 2019-06-12
  • 定义类型——结构体类型

    一,结构体类型的声明 1.结构体的声明 struct tag      //结构体类型名 {     member-list;  //结构体成员 };  //分号不能丢   2,结构体类型的创建和初始化 下面这种为匿名创建 struct  {     char name[20];//姓名     int age;//年龄     char sex[5];//性别 }s; 这是一个匿名结构体类型

    18610编辑于 2025-12-30
  • 来自专栏老怪兽的前端之旅

    (四)定义 props 类型

    # 一、定义 props 类型 第一种方式无法自动推断出类型 <script setup lang="ts"> defineProps(['id', 'title', 'price', 'isStock 使用 TypeScript 的方式定义 <script setup lang="ts"> // 使用 interface 定义 interface Product { id: number, # 二、使用 withDefaults,给 props 定义默认值 <script setup lang="ts"> // 使用 interface 定义 interface Product { { title: '默认标题', price: 100, isStock: true, }) </script> # 总结-写在最后 说明 vue 不支持使用外部导入进来的类型限制 ,比如通过 import 这种导入进来的不行,必须定义在内部

    76420编辑于 2023-02-22
  • 来自专栏老怪兽的前端之旅

    (二)Ref 类型定义

    # 一、定义 ref 类型的三种方式 自动推断 <script setup> import { ref } from 'vue' const num = ref(0) </script> 2. 显示定义类型(需要导入 Ref) <script setup> import { ref, Ref } from 'vue' const str: Ref<string> = ref('str') < setup> import { ref } from 'vue' const bool = ref<boolean>(true) </script> # 总结-写在最后 说明 ref 和 reactive 定义类型是一样的

    1.4K20编辑于 2023-02-22
  • 来自专栏C/C++基础

    C++11 POD类型

    POD(Plain Old Data,普通旧数据)类型是从C++11开始引入的概念,Plain代表它是一个普通类型,Old代表它可以与C兼容。 ; //有自定义的移动构造运算符 std::cout << std::is_trivial<D>::value; //有自定义的赋值运算符 std::cout << std::is_trivial <E>::value; //有自定义的移动赋值运算符 std::cout << std::is_trivial<F>::value; //有自定义的析构函数 std::cout << ---- 参考文献 [1]Trivial、standard-layout 和 POD 类型 [2]C++11之POD类型 [3]C++11新特性之POD类型 [4]POD (程序设计).wikipedia [5]深入理解C++11[M].3.8POD类型

    1.6K21发布于 2018-08-16
  • 来自专栏老怪兽的前端之旅

    (五)定义 emits 类型&原生 DOM 元素类型

    一、定义 emits 类型&原生 DOM 元素类型 定义定义触发事件(调用签名) const emit = defineEmits<{ (e: "事件名字"): void (e: " 事件名字"): void (e: "事件名字", 传递字段名: 类型): void }>() // 获取 DOM 元素的时候需要进行强制转换类类型 function sendEmit() { emit('事件名字', 传递单数) } 强制转换 DOM 类型(DOM 类型查看文档) const emit = defineEmits<{ (e: "事件名字"): void (e: "事件名字"): void (e: "事件名字", 传递字段名: 类型): void }>() // 获取 DOM 元素的时候需要进行强制转换类类型 function sendEmit const value = (e.target as HTMLSelectElement).value // 这里获取到的是 true 或 false emit('事件名字', 字段名: 类型

    97640编辑于 2023-02-22
  • 来自专栏C语言

    定义类型:结构体详解

    在C语言中数据类型分为内置类型(int,char等)和自定义类型(数组,结构体,联合体,枚举),所以结构体是自定义类型之一。那为什么会有结构体呢? 2 结构体的声明 结构体的说明相当于我们声明一个整型类型int一样规定了其存放的是整型类型,即结构体的说明规定了这个自定义类型中可以存放什么数据。 4 结构的特殊声明【匿名结构体类型】 4.1 定义:在声明结构的时候,可以不完全的声明即把结构体标签省略掉。 :就是我们如果使用匿名的结构体类型,如果没有对结构体类型重命名的话,只能使⽤⼀次,即我们只能定义s1这一个结构体变量。 位段中的成员在内存中从左向右分配,还是从右向左分配,标准尚未定义。 4.

    19710编辑于 2025-12-30
  • 来自专栏Java呓语

    11章、数据类型

    数字类型 MySQL 支持标准 SQL 中所有数据类型。 DECIMAL 和 NUMERIC 类型是精确类型。 要设置自动更新属性时,在列的定义时使用以下语句(顺序不相关): DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP CURRENT_TIMESTAMP 隐式默认值定义如下: 对于数字类型其默认值是:0;对于启动了自增序列的数字类型,则默认值是下一个数值; 对于除了TIMESTAMP之外的日期类型,其默认值是用0填充的字符串。 对于除了枚举类型之外的字符串值,其默认值是空字符串;对于枚举类型,其默认值则是枚举类型中的第一个值。

    2.7K20发布于 2018-08-21
  • 来自专栏C/C++基础

    C++11显示类型转换

    1.隐式类型转换的问题 隐式类型转换是C++一个让人又爱又恨的特性,使用方便,但可能会降低代码可读性,甚至会造成一些十分隐晦的错误。 随着项目代码规模变大,这种由隐式类型转换导致的隐晦错误会越埋越深,越来越难以发现。 2.显示类型转换 为了阻止容易导致隐晦错误的隐式类型转换,C++11引入了explicit关键字作用于自定义类型转换操作符的功能,禁止隐式类型转换。 其用法类似于explicit作用于单参构造函数来避免单参数构造函数被隐式调用造成的隐式类型转换。 = 0; } cout << "myInt1+myInt2=" << myInt1 + myInt2 << endl; //编译出错 当使用explicit关键字修饰bool<em>类型</em>转换操作符时,隐式<em>类型</em>转换将会被阻止

    1.1K40发布于 2018-12-27
  • 11-Rust 教程 - 集合类型

    集合类型 Vec、HashMap、String 详解:你的数据终于有地方住了 引入 还记得我们之前学的所有权吗?那时候你的数据就像流浪汉,不知道往哪儿放。 核心特点: 动态大小,自动扩容 元素类型必须相同 连续内存存储(访问快) 所有权管理(元素被移出时) HashMap - 键值对存储 这就像你的通讯录:名字是键,电话号码是值。 Vec 没有实现 Hash } 解决: 用实现了 Hash 的类型做键(String、&str、数字等) 3. 迭代时修改集合 fn main() { let mut nums = vec!

    22110编辑于 2026-04-13
  • 来自专栏老怪兽的前端之旅

    (七)provide inject 类型定义

    # 一、provide / inject 类型定义 # 定义 provide 值的类型 import {InjectIonKey } from 'vue' // 使用 Symbol() 来定义key 因为他不能被重复定义 export default const Theme = Symbol() as InjectIonKey<值的类型> # 传递 provide 值 <script setup lang ts"> import Theme from 'Theme.js' provide(Theme, '需要传递的值') </script> # 接收 inject 值 因为 Symbol 不允许被重复定义 theme = inject(Theme) # 二、第二种方式定义 provide('title', '这是我需要传递的内容') // 此时因为传递和接收在不同的文件,无法自动判断出是啥类型,默认是 unknown const title = inject('title') // 可以使用泛型来指定类型 cosnt title = inject<string>('title')

    74910编辑于 2023-02-22
  • 来自专栏C语言

    定义类型:联合和枚举

    一 ⾃定义类型:联合 1 联合体类型的声明/定义/赋值 像结构体⼀样,联合体也是由⼀个或者多个成员构成,这些成员可以不同的类型。 但是编译器只为最⼤的成员分配⾜够的内存空间。 5 联合的⼀个练习(大小端的判断) 二 ⾃定义类型:枚举 枚举顾名思义就是⼀ 列举,把可能的取值⼀ 列举。 声明枚举类型的时候也可以自由赋初值。 2 枚举类型的使⽤ 注意:那是否可以拿整数给枚举变量赋值呢?在C语⾔中是可以的,但是在C++是不⾏的,C++的类型检查⽐较严格。 2 枚举类型的优点 为什么使⽤枚举? 我们可以使⽤ #define 定义常量,为什么⾮要使⽤枚举? 枚举的优点: 1. 增加代码的可读性和可维护性 2. 和#define定义的标识符⽐较枚举有类型检查,更加严谨。 3. 便于调试,预处理阶段会删除 #define 定义的符号 4. 使⽤⽅便,⼀次可以定义多个常量 5.

    14410编辑于 2025-12-30
  • 来自专栏C++破军之路

    定义类型详解

    结构的每个成员可以是不同类型的变量。 Node* next;//结构体指针的大小是4/8个字节 }; 变成指针后,结构体的大小就固定可算了,详细知识涉及到数据结构链表的知识,后面再进行讲解 因此,在结构体中,结构体的自引用不是结构体里面包含同类型的结构体变量 大部分的参考资料都是这样说的 : 1.平台原因(移植原因):不是所有的硬件平台都能访问任意地址上的任意数据的,某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常。     char c1;     int i;     char c2; }; struct S2 {     char c1;     char c2;     int i; }; 例证:S1和S2类型的成员一模一样 枚举类型定义 枚举的优点 1.增加代码的可读性和可维护性 2.和#define定义的标识符比较枚举有类型检查,更加严谨 3.防止了命名污染  4.便于调试,使用方便,一次可以定义多个常量  枚举类型的大小就是一个整形的大小

    54110编辑于 2024-06-04
  • 来自专栏老怪兽的前端之旅

    (八)template ref 类型定义

    一、template 的 ref 类型定义

    这个是需要获取的 DOM 元素
    <script setup lang="ts"> import { getDom } from 'vuex' const getDom = ref<HTMLSelectElment | null>(null) </script> 总结-写在最后 说明 当我们定义需要获取原生的 DOM 的时候需要给他定义联合类型为 null 因为页面刚渲染的时候他还没有值,给他赋值 null 当我们不知道原生的 HTML 是啥类型的时候,可以把 HTML 先打出来 vscode 就会进行提示 当不确定一个参数是否有值的时候

    50020编辑于 2023-02-22
  • 来自专栏番茄_C语言

    定义类型详解

    ,你也可以在别的地方定义这个变量,因为你已经创建了一个新的类型,一个新的结构体类型 2.如何使用结构体类型 创建完了一个结构体类型,那我们应该这样去使用这个结构体类型呢? ,你也可以在别的地方定义这个变量,因为你已经创建了一个新的类型,一个新的结构体类型 int main() { struct abc a1 = { 20,'b',5.2 };//按顺序初始化结构体 / ,你也可以在别的地方定义这个变量,因为你已经创建了一个新的类型,一个新的结构体类型 int main() { struct abc a3 = { .a = 60,.c = 9.9,.b = 'a' } 二、枚举类型 1.枚举类型定义 #include<stdio.h> enum sex { male, female, no };//这里就定义了一个关于性别的枚举类型,它会按照从0开始的顺序给male 使用方便,一次可以定义多个常量 三、联合体类型 1.联合体类型定义 这种类型定义的变量也包含一系列的成员,特征是这些成员公用同一块空间(所以联合也叫共用体)。

    53910编辑于 2024-01-19
  • 来自专栏C语言入门到精通

    4.1 串类型定义

    02定义  1、串(string)(或字符串)是由零个或多个字符组成的有限序列。 2、零个字符的串称为空串,它的长度为零。 3、串中任意个连续的字符组成的子序列称为该串的字串。

    1.3K2423发布于 2020-12-09
  • 定义类型:联合和枚举

    前言 与结构体类似,联合体也是一个自定义类型,大家或许在某些地方发现相同之处,二者可以相互借鉴,但不能混淆在一起哦~ ,枚举与二者都不同,敬请期待~ 联合体类型的声明 像结构体⼀样,联合体也是由⼀个或者多个成员构成 ,这些成员可以不同的类型。 #include <stdio.h> //联合类型的声明 union Un { char c; int i; }; int main() { //联合变量的定义 union Un un = { {}中的内容是枚举类型的可能取值,也叫 枚举常量 这些可能取值都是有值的,默认从0开始,依次递增1,当然在声明枚举类型的时候也可以赋初值。 和#define定义的标识符⽐较枚举有类型检查,更加严谨。 3. 便于调试,预处理阶段会删除 #define 定义的符号 4. 使⽤⽅便,⼀次可以定义多个常量 5.

    17710编辑于 2026-01-14
  • 来自专栏C/C++基础

    C++11类型枚举

    1.传统枚举类型的缺陷 枚举类型是C/C++中用户自定义的构造类型,它是由用户定义的若干枚举常量的集合。枚举值对应整型数值,默认从0开始。比如定义一个描述性别的枚举类型。 传统枚举类型在设计上会存在以下几个问题。 (1)同作用域同名枚举值会报重定义错误。 ,所以不同枚举类型定义同名枚举成员编译不会报重定义错误。 3.C++11对传统枚举类型的扩展 传统枚举类型为了配合C++11引入的强类型枚举,C++11对传统枚举类型进行了扩展。 ---- 参考文献 [1]深入理解C++11[M].5.1强类型枚举.P155-P161 [1]C++11类型枚举——枚举类

    3.6K20发布于 2019-01-03
  • 来自专栏C语言入门到精通

    4.1 串类型定义

    02 定义 1、串(string)(或字符串)是由零个或多个字符组成的有限序列。 2、零个字符的串称为空串,它的长度为零。 3、串中任意个连续的字符组成的子序列称为该串的字串。

    9403029发布于 2019-07-12
  • 定义类型:联合和枚举

    前言:通过前文,我们系统学习了结构体的相关知识,深入理解了自定义类型的概念与实践,承接上文,我们将继续学习新的自定义类型:联合和枚举。 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> // 定义商品类型常量(方便识别) #define TYPE_BOOK 和#define定义的标识符相⽐较,枚举有类型检查,更加严谨。 ③. 便于调试,预处理阶段会删除 #define 定义的符号 ④. 使⽤⽅便,⼀次可以定义多个常量 ⑤. ③衬衫:设计、可选颜⾊、可选尺⼨ #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> // 定义商品类型常量 print_gift(book_gift); printf("-------------------\n"); print_gift(shirt_gift); return 0; } 定义商品类型常量

    24210编辑于 2025-12-24
领券