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类 好像有点陌生
需要多练习一下就好
加油哈
本节完 !