当前位置: 首页 > news >正文

TypeScript 基础学习

TypeScript是具有类型语法的JavaScript。

是JavaScript超集,可以编译为纯JavaScript,构建安全可靠的代码,进行类似 babel 的转换。

一种基于JavaScript的强类型、静态的编程语言,提供了类型检测的工具。

特性:

  • 易读

  • 开源

  • 提供代码的错误检测。

// @ts-check adding this to a js file shows errors in your editor
function test(arr){if(a.length > 10)
cannot find name 'a'. // the param is arr, not a !return arr.trim(0,10)return arr
}
  • 和JavaScript兼容性好,兼容 es6等。

// TypeScript code
type Result = 'a' | 'b'function test(result: Result) {if (result === 'a'){console.log('a')} else {console.log('b')}
}// 去掉 typescript 类型声明 types are removed
// 变成 JavaScript codefunction test(result) {if (result === 'a'){console.log('a')} else {console.log('b')}
}
  • 提供可靠类型,规范函数入参和出参。

// 接口 interface
interface A {id: numbername: stringsort: 1 
}function test(user: A) {console.log(user.id)
}// 类型声明 type
type R = 'a' | 'b'function test(r: R) {if (r === 'a') {console.log('a')} else {console.log('b')}
}

为什么需要TypeScript,除了上面特性,还可以从编程语言来说:

按数据类型分

在确定变量类型的时机来区分:

1、typescript 静态类型语言: 在编译代码时能确定变量类型

  • 代码可读性
  • 基于类型编程,关注系统如何构建,模块之间的关联
  • 编写清晰的代码
  • 适合大型,复杂的项目
  • 可靠,易重构。

2、JavaScript 动态类型语言: 在运行代码时能确定变量类型

  • 编程自由
  • 写时非常爽,重构火葬场
  • 重构时工作效率
  • 重构时成本增加
  • 不适合大型项目代码

Typescript 缺点

  • 引入太多的新概念,类型泛型、枚举等,渐进式,学会语法就能用。
  • 不适合小项目,会增加开发成本,需要在项目中声明很多的类型等。
http://www.lryc.cn/news/290800.html

相关文章:

  • 《CSS3》田字网格背景(外实线内虚线)的实现
  • 图书管理系统(ArrayList和LinkedList)--versions3.0
  • 游戏开发丨基于Pygame的AI版贪吃蛇小游戏
  • qt-C++笔记之QStringList、QList<QString>、QString、QChar、QList<QChar>区别
  • python爬虫学习之解析_BeautifulSoup
  • 2024美赛数学建模赛题解读常用模型算法
  • NoSQL 数据库管理系统和模型的比较
  • 数据库(SQL)
  • 如何用Docker+jenkins 运行 python 自动化?
  • uniapp瀑布流实现
  • 鸿蒙:@Link装饰器-父子双向同步
  • Leetcode--27
  • 使用Eclipse搞Android项目报错
  • import sys是什么
  • Python爬虫:XPath基本语法
  • UML/SysML建模工具更新情况(截至2024年1月)(1)UModel 2024
  • ubuntu20-github不通问题
  • 【MAC】Multi-Level Monte Carlo Actor-Critic阅读笔记
  • [GN] 设计模式—— 创建型模式
  • 链表——超详细
  • 【刷题】 leetcode 面试题 08.05.递归乘法
  • C语言实现希尔排序算法(附带源代码)
  • R语言【taxlist】——subset():取taxlist对象的子集
  • 单片机学习笔记---定时器计数器(含寄存器)工作原理介绍(详解篇2)
  • 《动手学深度学习(PyTorch版)》笔记4.1
  • OpenAI发布新模型!ChatGPT性能重磅提升,API大幅降价,GPT-4 「变懒」被修复
  • 【C深度解剖】计算机数据下载和删除原理
  • ASTORS国土安全奖:ManageEngine AD360荣获银奖
  • clang--cpplint--gitlint
  • Web开发8:前后端分离开发