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

1. TypeScript基本语法

TypeScript 学习总结

TypeScript 是一种 JavaScript 的超集,增加了静态类型检查和编译时错误检测,从而提高了代码的可维护性和可靠性。以下是 TypeScript 的基础知识总结,包括语法、运算符、数据类型、变量声明和作用域。

## 基本语法TypeScript 的基本语法与 JavaScript 相似,但增加了一些重要的功能:- **变量声明**:TypeScript 支持 `let`、`const` 和 `var` 声明变量。推荐使用 `let` 和 `const` 以确保更好的代码安全性。```typescriptlet name: string = 'Alice';const age: number = 30;
  • 函数
    函数的参数和返回值可以指定类型,从而确保函数的调用与实现的一致性。

    function greet(person: string, age: number): string {return `Hello ${person}, you are ${age} years old.`;
    }
    
  • 接口
    使用接口(interface)来定义对象的形状,提供了结构化的代码组织方式。

    interface Person {name: string;age: number;
    }const person: Person = {name: 'Bob',age: 25
    };
    

运算符

TypeScript 中的运算符大多与 JavaScript 中的运算符相同:

  • 算术运算符

    let x: number = 10;
    let y: number = 5;
    console.log(x + y); // 输出 15
    console.log(x - y); // 输出 5
    console.log(x * y); // 输出 50
    console.log(x / y); // 输出 2
    
  • 比较运算符

    let a: number = 10;
    let b: number = 20;
    console.log(a === b); // 输出 false
    console.log(a !== b); // 输出 true
    console.log(a > b);  // 输出 false
    
  • 逻辑运算符

    let isTrue: boolean = true;
    let isFalse: boolean = false;
    console.log(isTrue && isFalse); // 输出 false
    console.log(isTrue || isFalse); // 输出 true
    console.log(!isTrue); // 输出 false
    
  • 赋值运算符

    let num: number = 10;
    num += 5; // 相当于 num = num + 5
    console.log(num); // 输出 15
    

基础数据类型

TypeScript 提供了几种基础数据类型:

  • number:双精度 64 位浮点值。

    let num: number = 42;
    
  • string:字符系列,可以使用单引号(')、双引号(")或反引号(`)定义。

    let str: string = "Hello, TypeScript!";
    
  • boolean:表示逻辑值:truefalse

    let isActive: boolean = true;
    
  • enum:枚举类型用于定义数值集合。

    enum Color {Red, Green, Blue};
    let c: Color = Color.Blue;
    console.log(c);    // 输出 2
    
  • void:用于标识方法返回值的类型,表示该方法没有返回值。

    function logMessage(message: string): void {console.log(message);
    }
    
  • 其他数据类型

    • nullundefined:表示无值或未定义。
    • any:可以是任意类型。
    • never:表示从不会出现的值,例如函数抛出异常或无限循环。

变量声明

TypeScript 支持多种变量声明方式:

  • 声明变量并指定类型

    let uname: string = "hello";
    
  • 声明变量但没有初始值

    let uname: string;
    
  • 声明变量并初始化值,但不指定类型

    let uname = "hello"; // 类型推断为 string
    
  • 声明变量没有设置类型和初始值

    let uname; // 类型为 any,默认初始值为 undefined
    

变量作用域

变量作用域指定了变量定义的位置,并决定了变量的可用性。TypeScript 中有以下几种作用域:

  • 全局作用域:定义在程序结构的外部,可以在任何位置使用。

    var global_num = 12; // 全局变量
    
  • 类作用域:类中的变量称为字段,可以通过类的对象访问,也可以是静态的,通过类名访问。

    class Numbers { num_val = 13;      // 实例变量static sval = 10;  // 静态变量storeNum(): void { var local_num = 14; // 局部变量} 
    } 
    
  • 局部作用域:在函数或代码块内部定义的变量,仅在该作用域内可用。

    function example() {var local_num = 20; // 局部变量
    }
    

代码运行地址

您可以在 TypeScript 在线运行界面 上测试以下代码:

const hello: string = "Hello World!";
console.log(hello);

总结

通过 TypeScript 的静态类型检查、类型推断、接口、泛型等功能,我们能够编写更可靠、更易于维护的代码。理解和应用这些基础语法、运算符、数据类型和变量作用域,有助于提升代码质量和开发效率。
``

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • ‌移动管家手机智能控制汽车系统
  • 力扣刷题(6)
  • 唯徳知识产权管理系统 DownloadFileWordTemplate 文件读取漏洞复现
  • 【Linux】Ubuntu 22.04 shell实现MySQL5.7 tar 一键安装
  • LeetCode[中等] 合并区间
  • C++ | Leetcode C++题解之第400题第N位数字
  • unity3d入门教程六
  • [001-03-007].第07节:Redis中的管道
  • 【python报错已解决】`ModuleNotFoundError: No module named ‘requests‘`
  • 中级练习[4]:Hive SQL商品销售与用户增长数据分析
  • python使用Pyvis库绘制B站评论互动网络结构图
  • LeetCode70:爬楼梯
  • 后端入门 (JQuery基础) 01
  • Python 正则表达式详解:从基础匹配到高级应用
  • AIGC实战——多模态模型Flamingo
  • __proto__ 和 prototype的关系
  • bootstrap创建登录注册页面
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • HTTP 简介
  • JavaScript HTML DOM
  • JS笔记四:作用域、变量(函数)提升
  • Sublime Text 2/3 绑定Eclipse快捷键
  • underscore源码剖析之整体架构
  • 如何用vue打造一个移动端音乐播放器
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • 责任链模式的两种实现
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • (13):Silverlight 2 数据与通信之WebRequest
  • (2024,LoRA,全量微调,低秩,强正则化,缓解遗忘,多样性)LoRA 学习更少,遗忘更少
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (C++二叉树05) 合并二叉树 二叉搜索树中的搜索 验证二叉搜索树
  • (附源码)php新闻发布平台 毕业设计 141646
  • (十八)三元表达式和列表解析
  • (数据结构)顺序表的定义
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • ./mysql.server: 没有那个文件或目录_Linux下安装MySQL出现“ls: /var/lib/mysql/*.pid: 没有那个文件或目录”...
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008
  • .net core 控制台应用程序读取配置文件app.config
  • .net 开发怎么实现前后端分离_前后端分离:分离式开发和一体式发布
  • .Net 路由处理厉害了
  • .NET简谈设计模式之(单件模式)
  • .net专家(高海东的专栏)
  • .py文件应该怎样打开?
  • []sim300 GPRS数据收发程序
  • [Algorithm][动态规划][01背包问题][目标和][最后一块石头的重量Ⅱ]详细讲解
  • [Algorithm][综合训练][kotori和气球][体操队形][二叉树中的最大路径和]详细讲解
  • [Android]使用Retrofit进行网络请求
  • [BUG]Datax写入数据到psql报不能序列化特殊字符
  • [C/C++]数据结构 深入挖掘环形链表问题