首页 > 其他分享 >TypeScript的严格模式,any和unknown都是顶级类型,any 和 unknown 的区别

TypeScript的严格模式,any和unknown都是顶级类型,any 和 unknown 的区别

时间:2024-04-11 21:45:29浏览次数:25  
标签:TypeScript obj unknown say 类型 any

TypeScript 中的严格模式

在TS的严格模式中;不可以将null,undefined赋值给void;
但是在非严格模式中就可以。
Tip:在项目中;我们还是要开启严格模式,否则会出现意想不到的错误,
我们可以在 tsconfig.json文件的 compilerOptions 的 strict 中去配置

tsconfig.json

{
  "compilerOptions": {
    "strict": true, //开启了严格模式
    "jsx": "preserve",
  },
  "include": ["src/**/*.ts", "types/**/*.d.ts"],
  "references": [{ "path": "./tsconfig.node.json" }]
}

在严格模式中TS不可以将null,undefined赋值给void

let v1:void = null
console.log(v1)
在严格模式中TS【不可以】将null,undefined赋值给void

any和unknown都是TypeScript中的顶级类型

any和unknown都是TypeScript中的顶级类型,
他们可以包含 Object,number,string, boolean,never,Symbol等这些类型;
也就是说可以将任何类型赋值给他们

any 和 unknown 的区别 [面试题]

1.unknown类型没有办法读取属性,也不可以调用方法;但是any是可以的
2.unknown类型比any类型更加安全一些。
  在我们不知道使用什么类型的时候优先使用unknown类型
3.any类型完全绕过类型检查。unknown只是暂时不知道是什么类型,
  后面有会知道是什么类型

unknown类型没有办法读取属性,也不可以调用方法

let obj:unknown = {
  sex:'男',
  say:()=>{console.log('我是非常nice的')}
}
// 报错,提示:“obj”的类型为“未知”
obj.unknown
// 报错,提示:“obj”的类型为“未知”
obj.say()

any修饰的可以读取属性和调用方法

let obj:any = {
  say:()=>{
    console.log('say')
  },
  sex:'男'
}
// 不会报错
obj.say()
console.log(obj.sex)

标签:TypeScript,obj,unknown,say,类型,any
From: https://www.cnblogs.com/IwishIcould/p/18130081

相关文章

  • 鸿蒙开发TypeScript语言:【TypeScript 安装】
    TypeScript安装本文介绍TypeScript环境的安装。我们需要使用到npm工具安装。NPM安装TypeScript如果你的本地环境已经安装了npm工具,可以使用以下命令来安装。使用国内镜像:npmconfigsetregistryhttps://registry.npmmirror.com安装typescript:npminstall-g......
  • Typescript 详细总结1
    基本数据类型类型注释:numberlet num:number=5//数字类型let str:string='str'//字符串类型let boolen:boolean =true//布尔 类型断言,确定类型后,不能赋其他类型值any类型let  anything:any='ssssss'let  anything:any=223any类型......
  • 鸿蒙开发TypeScript语言:【简介与Hello World!】
    TypeScript教程TypeScript是JavaScript的一个超集,支持ECMAScript6标准([ES6教程])。TypeScript由微软开发的自由和开源的编程语言。TypeScript设计目标是开发大型应用,它可以编译成纯JavaScript,编译出来的JavaScript可以运行在任何浏览器上。语言特性TypeScript......
  • TypeScript 与组合式 API
    看吧:https://cn.vuejs.org/guide/typescript/composition-api.html为组件的props标注类型<scriptsetuplang="ts">constprops=defineProps({foo:{type:String,required:true},bar:Number})props.foo//stringprops.bar//number|undefine......
  • vue3 + typescript 检测高德地图类型
    在ts项目中使用高德地图,为了方便使用类型检测及类型提示,需引入高德地图的类型文件,操作如下:1、引入@amap/amap-jsapi-types插件npmi-S@amap/amap-jsapi-types2、新建类型文件types/index.d.tsimport'@amap/amap-jsapi-types';3、在tsconfig.json中配置:"include":[......
  • 13. TypeScript中的联合类型和交叉类型
    在TypeScript中,类型系统提供了多种方式来组合类型,其中最常见的就是联合类型和交叉类型。这两种类型都允许你以灵活的方式处理可能有多种类型的值。一、联合类型1.1定义在TypeScript中,联合类型是一种复合类型,表示一个值可以是几种类型之一。我们使用|符号来定义联合类型......
  • 14. TypeScript类型保护(类型缩小、类型守卫)
    类型保护是一种TypeScript技术,用于获取变量类型信息,通常使用在条件块语句中。类型守卫是返回布尔值的常规函数,接受一个类型并告诉TypeScript是否可以缩小到更具体的类型。TypeScript类型保护的方式类型断言类型断言是一种告诉编译器“相信我,我知道我在做什么”的方式。......
  • 冒泡排序的基本实现【数据结构与算法—TypeScript 实现】
    笔记整理自coderwhy『TypeScript高阶数据结构与算法』课程概念本质:相邻元素两两比较并交换位置,使整个序列按照特定的顺序排列特性复杂度分析时间复杂度:最好情况:O(n)最坏情况:O(n^2)平均情况:O(n^2)空间复杂度:O(1),原地排序使用场景因为时间复杂度为O(n^2)适......
  • 优先队列的基本实现【数据结构与算法—TypeScript 实现】
    笔记整理自coderwhy『TypeScript高阶数据结构与算法』课程特性效率比普通队列高每个出队元素拥有最高优先级可以用数组、链表等数据结构实现,但是堆结构是最常用的实现方式设计实现方式:基于堆结构实现,堆结构底层基于数组实现属性:heap:存放队列元素方法:enq......
  • 插入排序的基本实现【数据结构与算法—TypeScript 实现】
    笔记整理自coderwhy『TypeScript高阶数据结构与算法』课程概念本质:将数列分为已排序和未排序,将未排序中的元素插入到已排序中的合适位置特性复杂度分析时间复杂度:最好情况:O(n),有序序列最坏情况:O(n^2),倒序序列平均情况:O(n^2),随机数列空间复杂度:O(n),原地排序使......