写点什么

学习 Typescript(一)

作者:bo
  • 2022 年 7 月 27 日
  • 本文字数:811 字

    阅读完需:约 3 分钟

为什么要使用 typescript

程序更容易理解

  • 问题:函数或者方法输入输出的参数类型,外部条件等

  • 动态语言的约束:需要手动调试等过程

  • 有了 Typescript:代码本身就可以回答上述问题

更少的错误

  • 编译期间能够发现大部分错误

  • 杜绝一些比较常见的错误

非常好的包容性

  • 完全兼容 Javascript

  • 第三方库可以单独编写类型文件

  • 大多数项目都支持 typescipt

一点小缺点

  • 增加了一些学习成本

  • 短期内增加了一些开发成本

数据类型

原始数据类型

let isDone: boolean = false
let age: number = 10
let firstName: string = 'viking'let message: string = `Hello, ${firstName}`
let u: undefined = undefinedlet n:null = null
let num: number = undefined
复制代码

Any 类型

let notSure: any = 4notSure = 'maybe a string'notSure = true
notSure.myNamenotSure.getName()
复制代码

数组和元组

数组

let arr: number[] = [1,2,3]arr.push(3)
// arguments类数组 IArguments类型,不是Arrayfunction test(){ console.log(arguments); arguments.length arguments[0]}
复制代码

元组

将不同数据类型的元素放在一起

let user: [string, number] = ['abc', 20]user.push('1212')	只能push已有类型
复制代码

接口 Interface

interface IPerson{    readonly id: number;    // 只读属性    name: string    age: number    address?: string    // 可选属性}
let lihua: IPerson = { id: 1, name: 'lihua', age: 20}
复制代码

函数

function add(x: number, y: number, z?: number): number {    if (typeof z === 'number') {        return x + y + z    } else {        return x + y    }}add(1, 2)add(1, 2, 3)
复制代码


const add =  (x: number, y: number, z?: number): number => {    if (typeof z === 'number') {        return x + y + z    } else {        return x + y    }}
interface ISum{ (x: number, y: number, z?: number):number}let add2: ISum = add
复制代码


发布于: 刚刚阅读数: 3
用户头像

bo

关注

还未添加个人签名 2022.07.11 加入

还未添加个人简介

评论

发布
暂无评论
学习Typescript(一)_前端_bo_InfoQ写作社区