TypeScript入门 | 青训营笔记

101 阅读2分钟

TypeScript入门 | 青训营笔记

这是我参与「第五届青训营 」笔记创作活动的第6天,入门TypeScript。

一、认识TypeScript

**TypeScript是JavaScript的超集,它不仅是一种可以对类型进行约束的工具。对前端开发者来说,TypeScript强化了「面向接口编程」这一理念。**感兴趣的可访问TS官方文档

二、主要语法介绍及实践:

1、基础数据类型

数字Number,字符串String,对象Object,布尔值Boolean,数组Array,元组Tuple,枚举enum,任意any,undefined,null。 TypeScript支持与JavaScript几乎相同的数据类型,此外还提供了any,unknown等类型。

let a : string =  'a' 
let b : string = 1  // 类型不对,报错
let c = 2
let d = 'd'

image.png

interface Person {
    name: String,
    age: Number,
    sex: '男' | '女'
}

const person1 : Person = {
    name: '张三',
    age: 22,
    sex: '女'
}

const person2 : Person = {
    name: '张三',
    age: 22,
    sex: 'man'  // error
}

image.png

因此,采用TS语法,可以规范一些数据的类型,避免一些潜在的‘坑’。

2、高级数据类型

联合/交叉类型,联合类型(|)表示为几个值之一,而交叉类型(&)表示都要满足

// 联合类型
let value:string | number 
value = 12 
console.log("数字为 "+ value) 
value = "string" 
console.log("字符串为 " + value)

image.png

// 交叉类型
type Person = Array<{
    name:string 
    } & ({
        height:number,
        weight:number
    } | {
        age:number
        sex:'man' | 'woman'
    })>

const person:Person = [{
    name:'xw',
    height:180,
    weight:80
},{
    name:'xl',
    age:18,
    sex:'man'
    // height:180 // error
}]

image.png

这两个类型的语法一个是或“|”,一个是与“&",也很方便记忆。

3、类的概念

TypeScript 引入了 JavaScript 中没有的“类”概念。下面用一个段代码来说明

class Car { 
    // 字段 
    engine:string; 
    color:string = 'yellow';
 
    // 构造函数 
    constructor(engine:string) { 
        this.engine = engine 
    }  
 
    // 方法 
    display():void { 
        console.log("发动机为 : "+this.engine) 
    } 
}

const car = new Car('v8')

car.display() //"发动机为 : v8" 

car.color = 1

image.png

image.png

TypeScript中“类”的语法,与Java中有点类似,一个类中有属性,即字段;有其构造器,在new一个对象的时候,调用其构造器,生成该类的实例对象;还有该类的方法定义。与java中不同的是,typescript需要对属性赋初值,否则就会报错。

以上有不足之处,欢迎各位大佬提点~😀😀😀