TypeScript(二) 类型注解 类型推断 + 函数参数和返回类型的注解 + 数组类型的注解方法

本文详细介绍了TypeScript中的类型注解、类型推断的概念,并通过实例展示了函数参数和返回类型的注解,以及数组类型的注解方法。在类型推断中,当类型可以自动识别时无需注解,否则需要进行类型注解以避免错误。对于函数,即使没有返回值也需要明确注解为`void`。对于数组,可以使用泛型来处理包含复杂对象的数组类型。通过实践,可以更好地掌握TypeScript的类型系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、

类型注解 类型推断

1)
类型注解

let count1: number;
count1 = 123;

let count2 : number = 456;

2)
类型推断

let count2Inference = 123;

3)
工作使用问题(潜规则)
1、
如果TS 能够自动分析变量类型 我们就什么都不用做
2、
如果TS 不能 分析变量类型 我们就需要类型注解

举例子说明一下
1)
可以从 one two的类型 判断 three类型 这个叫类型推断 不用注解

const one = 1;
const two = 2;
const three = one + two;

2)
不写注解 显示any
在这里插入图片描述

function getTotal(one : number, two : number){
    return one + two;
}
const total = getTotal(1, 2);

这样就好了 total 可以自动识别是number

这种可以自动识别的 不用注解
在这里插入图片描述

2、

函数参数和返回类型的注解

返回类型的注解
如果因为大意写错了一点内容 变成了这个样子

function getTotal(one : number, two : number) {
    return one + two + '';
}
const total = getTotal(1, 2);

这个total 就会显示 string 类型
这个时候需要手动加一点 使得返回正确
在这里插入图片描述
手动将后面的内容去掉就行
在这里插入图片描述
2)
一个函数的输出 如果不需要返回值 我们也需要注解一下
在这里插入图片描述
3)
程序永远执行不到的时候
加一个never

function errorFunction() : never{
    throw new Error();
    console.log('hello');
}

还有一种是死循环类型

function forError(): never {
  while (true) {}
  console.log("hello");
}

4)
当函数的参数我传入的是对象的情况
在这里插入图片描述
这样操作一下 total 就可以自动识别number

function add({ one, two }: { one: number; two: number }) {
  return one + two;
}

const total = add({ one: 1, two: 2 });

5)

在这里插入图片描述

这样就可以啦

function getNumber({one} : {one : number}){
    return one;
}
const one = getNumber({one : 1})

3、

数组类型的注解方法

先注解最简单的形式

const numberArr : number[] = [1,2,3];
const stringArr : string[] = ['a','b','c'];
const undefinedArr : undefined[] = [undefined, undefined];

混合的形式
有数字也有字符串 ? 怎么定义这个常量 ?
其实将鼠标放在 arr 上面 就会自动提示怎么表达这个问题

const arr : (number | string)[] = [1, '2'];

3)如果现在数组里面是有对象的? 怎么定义 ?
比如是下面这个样子的

const op = [
  { name: "ff", age: 20 },
  { name: "pp", age: 18 },
];

我们怎么去处理这个事情??
这样就可以
其实呢 鼠标放在 op上会自动推断 我们再写出来就行

const op : {name:string,age:number}[]= [
  { name: "ff", age: 20 },
  { name: "pp", age: 18 },
];

有个问题 这个长串如果我在多个地方使用 ?简化
1)给一个变量 需要注意这个变量包含对象和数组不能用const定义
const定义的是常量

type jianhua = {name:string,age:number}[];
const op : jianhua= [
  { name: "ff", age: 20 },
  { name: "pp", age: 18 },
];

2)定义一个类 来简化这个问题

class tp  {
    name:string;
    age:number
}
const op : tp[]= [
  { name: "ff", age: 20 },
  { name: "pp", age: 18 },
];

需要注意的是类的定义方法 class类 好像有点陌生
需要多练习一下就好
加油哈

本节完 !

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值