携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情
大家好,我是吃鱼的老鼠.最近在学习ts,有些心得来分享一下(绝不是眼馋掘金的奖励)
练习的话可以在这个网站中练
官方文档在这里
这篇文章先说 基础类型
一.基础类型
1. boolean
let isShow: boolean = true;
类型与boolean不一样会提示
2. number
let sum: number = 1234
3. string
let str: string = 'hello everyone'
这些写一下就了解的差不多了,比较简单
4. undefined 和 null
let u: undefined = undefined;
let n: null = null;
注意: 默认情况下null和undefined是所有类型的子类型。 就是说你可以把 null和undefined赋值给number类型的变量。
const sum: number = null;
const name: string = undefined;
const isDog: boolean = null
在线练习中记得把strictNullChecks 这一配置给关闭
否则会提示
5. any
当不知道某值的类型可以使用any
let sun: any = 123;
sun = 'qwer';
sun = true;
// 不建议使用any,如果不知道某值的类型,可以使用下面这个类型
6. unknown
TypeScript(3.0 及以上版本)还提供了一种类似于 any 的特殊类型
unknown ,但是它是一个安全类型,使用 unknown 做任何事情都是不合法的
function sum(x: unknown,) {
// 先类型断言后才能操作值
if(typeof x === 'number'){
return x + 1
}
return x
}
推荐使用 unknown 而不是 any,因为它提供了更安全的类型--如果想对 unknown 进行操作,必须使用类型断言或缩小到一个特定的类型。
7. void
void类型像是与any类型相反,它表示没有任何类型。 当一个函数没有返回值时,你会见到其返回值类型是 void:
function hero(s: string): void {
console.log(s)
}
// 函数没有返回值时,默认为void
function hero1(q: string) {
console.log(q)
}
8. never
永不存在的值的类型用never。 例如,
1.抛出异常
function err(e: string): never {
throw new Error(e)
}
2.返回never的函数必须存在无法达到的终点(不要运行呦,是死循环)
function loop(): never {
while (true) {}
}
never类型是任何类型的子类型,也可以赋值给任何类型;but,没有类型是never的子类型或可以赋值给never类型(除了never本身之外)。 即使 any也不可以赋值给never。
9. 数组类型
let arr: number[] = [1, 2, 3, 4];
可以使用数组的方法
10. 元组类型 Tuple
元组类型允许表示一个已知元素数量和类型的数组,各元素的类型不必相同。(可以用const 定义)
const list:[number,string] = [10, '11']