搜索
简帛阁>技术文章>typescript(三)ts中的类型注解和类型推断

typescript(三)ts中的类型注解和类型推断

ts的类型注解

哈哈,看到这个词是不是挺唬人的,我刚开始学习也是一样,其实类型注解就是ts为一个变量,或者一个对象,一个数组,一个函数,一个类等定义了类型,就是类型注解。就是声明了类型。

let numA :number
numA = 6

这里声明变量numA为数字类型,这就叫做ts为numA做了类型注解。类型注解不仅仅限于基础类型,还有我们上一节学的对象类型的注解。

ts的类型推断

ts具备类型判断能力

let numB = 6

声明的变量numB我们在这里并没有声明类型,但是ts的类型推断可以将变量定义为数字类型,不需要类型注解意味着ts会通过类型推断来判断出类型并定义。

let number1 = 1
let number2 = 3
const numberTotal = number1 + number2 
// 测试numberTotal ts类型推断为number类型,而number1、number2同样也不需要写类型注解

需要写类型注解的列子:

function getTotal(one, two) {<!-- -->// ts会提示one,two是any类型,这时候你传字符串,你的业务逻辑就会出错
    return one + two
}
const total = getTotal(1, 3)

修改后:

function getTotal(one: number, two: number) {<!-- -->
    return one + two
}
const total = getTotal1(1, 3)
// 这里的total变量不需要加类型注解,因为当one、two类型确定后,ts会通过类型推断能力定义total的类型

ts代码里面的每个变量,每个对象的属性类型都应该是固定的,如果你推断就让它帮你推断,推断不出来的时候就需要类型注解

下一篇: typescript(四)ts中函数的参数和返回值的类型定义

ts类型注解哈哈,看到这个词是不是挺唬人的,我刚开始学习也是一样,其实类型注解就是ts为一个变量,或者一个对象,一个数组,一个函数,一个类等定义了类型,就是类型注解。就是声明了类型。letnumA
概述TypeScript21引入了映射类型,这是对类型系统的一个强大的补充。本质上,映射类型允许w咱们通过映射属性类型从现有类型创建新类型。根据咱们指定的规则转换现有类型的每个属性。转换后的属性组成
2021年,TypeScript非常火热,前端的各大主流框架工具,都在向TypeScript靠拢,TypeScript让前端开发复杂大型项目更加严谨。极大的降低了代码出现bug的几率,也大大增强了代
交叉类型不能完全按照传统编程中的与来理解。交叉类型的定义:将多个类型合并为一个类型,包含了所有类型的特性,而且要同时满足要交叉的所有类型。后半段话不是很好理解,看一下接口类型联合类型的交叉类型就好
类型注解:是一种轻量级的为函数或者变量添加的约束以下会报错,因为str需要字符串,而msg是数组,所以失败,但是会成功转化为js,因为js没有这种类型转换(function(){functionsh
用折叠规则X、X、X都折叠成XX折叠为X即:一个引用的引用折叠成一个普通的左值引用类型,右值引用的右值引用折叠成右值引用当将一个左值传递给一个参数是右值引用的函数,且此右值引用指向模板类型参数(T&
录1联合类型2交叉类型3类型保护31自定义类型保护32typeof类型保护33instanceof类型保护1联合类型所谓的联合类型就是定义一些类型,定义的变量只需要满足任意一种类型即可,联合类型使用
auto类型推断auto常规类型推断auto作用就是在声明变量的时候根据变量初始值的类型自动为此变量选择匹配的类型,不需要程序员显式地指定类型auto特点auto的自动类型推断发生在编译期间auto定
TS一、类型检测0、type定义类型别名,方便多次复用//type用于定义类型别名(typealias)typeIDTypestring|number|booleantypePointType{&l
extendsextends在TS类型编程中用法(TextendsU,表示T中的某些在U里面,比较难描述,用法如下:TextendsU?X:Y分为两种情况理解更直观一些:1如果T不是一个联合类型