Typescript入门(一)

117 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情

大家好,我是吃鱼的老鼠.最近在学习ts,有些心得来分享一下(绝不是眼馋掘金的奖励)

练习的话可以在这个网站中练

官方文档在这里

这篇文章先说 基础类型

一.基础类型

1. boolean

let isShow: boolean = true;

image.png 类型与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;

注意: 默认情况下nullundefined是所有类型的子类型。 就是说你可以把 nullundefined赋值给number类型的变量。

const sum: number = null;
const name: string = undefined;
const isDog: boolean = null

在线练习中记得把strictNullChecks 这一配置给关闭 image.png

否则会提示

image.png

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)
    }

image.png

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']