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

TypeScript-any和void类型

任何值赋予 "void" 类型时,通常用于强调函数的副作用而非返回值。使用 "any" 要小心,它减弱了类型检查,而 "void" 有助于明确函数的返回意图。...any 类型any 表示任意类型, 当我们不清楚某个值的具体类型的时候我们就可以使用 any一般用于定义一些通用性比较强的变量, 或者用于保存从其它框架中获取的不确定类型的值在 TS 中任何数据类型的值都可以赋值给...("BNTang");}test();图片在 TS 中只有 null 和 undefined 可以赋值给 void 类型,但是在赋值的过程当中会报错,需要关闭严谨模式如下:图片注意点null 和 undefined...是所有类型的子类型, 所以我们可以将 null 和 undefined 赋值给任意类型然后在来看可以赋值 null 和 undefined:let value: void;value = null;value...= undefined;// 会报错// value = true;console.log(value);图片如上 let value: void; 代码的含义为,定义了一个不可以保存任意类型数据的变量

31320

【C 语言】数据类型本质 ( void 关键字作用 | 数据类型封装 | 作为 参数 或 返回值 代表无 | void* 指针赋值与被赋值 | void 类型变量不存在 )

文章目录 一、数据类型封装 二、作为 参数 或 返回值 代表无 三、void* 指针赋值与被赋值 四、void 类型变量不存在 一、数据类型封装 ---- 实现函数 的 底层函数开发者 , 不想将 底层的数据结构...暴露给 函数调用者 ; 如 : 定义一个函数 , int initEnv(void **handle) 该函数被 暴露给调用者 , 但是函数的 void **handle 参数类型是 void** ,...; 三、void* 指针赋值与被赋值 ---- C 语言中 , 对指针赋值时 , 只有 相同类型的指针 , 才能相互赋值 ; void* 作为 左值 可以 被赋值 任意类型的 指针 ; void* 作为...右值 赋值给其它类型的指针类型变量时 , 必须将 该指针强转为其它类型 ; 最常见的是使用 malloc() 函数申请内存时 , 其返回一个 void * 类型的指针 ; void *malloc(unsigned...int size); 如果分配内存完毕 , 将其赋值给一个其它类型指针时 , 需要强转 ; int *p = (int*) malloc(sizeof(int) * 10); 四、void 类型变量不存在

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

    【TypeScript】TS类型声明(四)

    any(任意类型)声明变量类型为any时编译时会绕过所有类型的检测,直接通过编译阶段的检查可以任意访问属性的方法和属性any类型可以赋值给任意类型如果变量初始没有定义类型,默认为any;经过赋值后,TS...类型,any类型可以赋值给任意类型unknown,never 都不允许执行变量的方法以及访问内部属性在unknown没有被断言或细化到一个确切类型之前,unknown不可以赋值给其它类型,除了它自己和any...类型的变量let testValue1: unknown = unknownValue;//赋值给any类型的变量let testValue2: any = unknownValue;错误示范://赋值给...具有以下特点:never类型是所有类型的子类型,即never类型可以赋值给任何类型。其他任何类型均不是never类型的子类型,即其他类型均不可赋值给never类型,除了never本身。...即使any类型也不可以赋值给never类型。返回类型为never的函数中,其终点必须是不可执行的,例如函数过程中抛出了错误或者存在死循环。

    22010

    Angular 从入坑到挖坑 - HTTP 请求概览

    因为这里是以默认的表单提交的方式进行的数据提交,当后端需要修改请求的 body 格式时,则需要我们修改请求的 MIME 类型 当需要更改请求的 MIME 类型或是需要添加授权访问的 token 信息这一类的操作时...4.2.1、获取错误信息 在涉及到前后端交互的过程中,不可避免会出现各种状况,在出现错误时,可以在 subscribe 方法中,添加第二个回调方法来获取错误信息 getQuotes() { this.services.getAntiMotivationalQuotes...>, next: HttpHandler): ObservableHttpEventany>> { // 开始时间 const started = Date.now();...4.3.2、修改请求信息 由于一个请求可能会存在重试发起的情况,为了确保多次发起请求时的请求信息的不变性,对于 HttpRequest 和 HttpResponse 我们是不可以修改原始的对象属性值的...>, next: HttpHandler): ObservableHttpEventany>> { // 开始时间 const started = Date.now();

    5.3K10

    TypeScript查漏补缺(基础类型)

    **所有类型都可以赋值给any,也可以赋值给unknown**。...any类型能被赋值给任意类型(any、unknown、number等,unknown类型只能被赋值给unknown、any类型) // unknown let myunknown: unknown let...{ console.log('Hi') } undefined能被赋值给void,但void不能赋值给undefined void类型不能赋值给undefined这是符合正常的情况的:即只能赋值给自己和...但是,有例外情况:undefined可以被赋值给void const s1: undefined = undefined const s2: void = undefined 顺带提一下:null和undefined...上面的例子中,else分支的nickname会被收窄为boolean类型,而boolean类型无法被赋值给never类型,所以会出现编译错误,就能够提前检测出错误,避免很多没必要的问题。

    90220

    TypeScript类型声明

    (任意类型)声明变量类型为any时编译时会绕过所有类型的检测,直接通过编译阶段的检查可以任意访问属性的方法和属性any类型可以赋值给任意类型如果变量初始没有定义类型,默认为any;经过赋值后,TS会根据赋值类型来标识变量的类型...类型,any类型可以赋值给任意类型unknown,never都不允许执行变量的方法以及访问内部属性在unknown没有被断言或细化到一个确切类型之前,unknown不可以赋值给其它类型,除了它自己和any...类型的变量let testValue1: unknown = unknownValue;//赋值给any类型的变量let testValue2: any = unknownValue;错误示范://赋值给...具有以下特点:never类型是所有类型的子类型,即never类型可以赋值给任何类型。其他任何类型均不是never类型的子类型,即其他类型均不可赋值给never类型,除了never本身。...即使any类型也不可以赋值给never类型。返回类型为never的函数中,其终点必须是不可执行的,例如函数过程中抛出了错误或者存在死循环。

    37330

    深度讲解TS:这样学TS,迟早进大厂【11】:类型断言

    将 any 断言为一个具体的类型§ 在日常的开发中,我们不可避免的需要处理 any 类型的变量,它们可能是由于第三方库未能定义好自己的类型,也有可能是历史遗留的或其他人编写的烂代码,还可能是受到 TypeScript...; } 那么也不难理解为什么 Cat 类型的 tom 可以赋值给 Animal 类型的 animal 了——就像面向对象编程中我们可以将子类的实例赋值给类型为父类的变量。...(); 上面的例子中,我们通过类型声明的方式,将 tom 声明为 Cat,然后再将 any 类型的 getCacheData('tom') 赋值给 Cat 类型的 tom。...Animal = { name: 'tom' }; let tom = animal as Cat; 在上面的例子中,由于 Animal 兼容 Cat,故可以将 animal 断言为 Cat 赋值给...则会报错,不允许将 animal 赋值为 Cat 类型的 tom。 这很容易理解,Animal 可以看作是 Cat 的父类,当然不能将父类的实例赋值给类型为子类的变量。

    1.3K20

    【TypeScript】007-类型断言

    将 any 断言为一个具体的类型 在日常的开发中,我们不可避免的需要处理 any 类型的变量,它们可能是由于第三方库未能定义好自己的类型,也有可能是历史遗留的或其他人编写的烂代码,还可能是受到 TypeScript...; } 那么也不难理解为什么 Cat 类型的 tom 可以赋值给 Animal 类型的 animal 了——就像面向对象编程中我们可以将子类的实例赋值给类型为父类的变量。...(); 上面的例子中,我们通过类型声明的方式,将 tom 声明为 Cat,然后再将 any 类型的 getCacheData('tom') 赋值给 Cat 类型的 tom。...Animal = { name: 'tom' }; let tom = animal as Cat; 在上面的例子中,由于 Animal 兼容 Cat,故可以将 animal 断言为 Cat 赋值给...则会报错,不允许将 animal 赋值为 Cat 类型的 tom。 这很容易理解,Animal 可以看作是 Cat 的父类,当然不能将父类的实例赋值给类型为子类的变量。

    3600

    TypeScript不学?你养我啊

    定义类型的好处 如下,我想求和a和b,但是又错误的给a赋值了'sk',那么c的值就成了拼接字符串的结果。其实这时候要是定义变量的时候约束了类型,在给变量a赋值 'sk'时,就会报错。...let a:10 a = 12 我们给a赋值12就会报错如下错误 联合类型 使用或者符号()此时,sex赋值必须是字符串"male" 或者 "female" let sex : "male" |...这种情况是 显示的any let no_use : any 而在定义变量时,不赋值,就是 隐式any 。Ts检测到没有指定类型,然后给添加类型为any。 let d; !!!!! 不建议使用。...let e:unknown e = 12 e ='sss' any和unknown的区别 如下,any类型的值可以赋值给字符串。...let str:string let e:unknown e ='sss' str = e unknown类型实际上是一个类型安全的any,unknown类型的变量不能赋值给其他变量 unknown类型赋值给

    89620

    前端应该掌握的Typescript基础知识

    , 特别是一些很低级的错误 帮助我们在写代码的时候提供更丰富的语法提示, 方便的查看定义对象上的属性和方法 比如: 你给函数传了一个对象, 你在函数实现的时候还得记住对象里面都有啥参数, 你定义的参数名字是啥..., 可以赋值给其他类型的变量 strictNullChecks 为 true 的话不能赋值给其他类型 let str: string; str = null; str = undefined; 任意类型...:void => {} never 类型 永远不存在的值 任何类型的字类型, 可以赋值给任何类型 但是任何类型都不可赋值给 never, 包括 any function error(msg: string...如果变量定义的时候没有赋值, 默认是 any 类型 let x; // 可以赋值为任何类型的值 let x1 = '生生世世'; // x1会推论成sring类型, 不能给x1赋值为其他类型了 // x1...App; 结构类型系统 接口的兼容性 ts 类型的检查原则, 有一个东西看起来像鸭子、听起来像鸭子、叫起来也像鸭子,那么我们就可以认为他是鸭子 当一个类型 Y 可以被赋值给另一个类型 X 时, 就可以说类型

    60910
    领券