TypeScrip快速入门

news/2025/2/14 7:02:03/

文章目录

  • TypeScrip
    • 基础语法
      • 变量的声明
        • 复合类型
      • 条件控制
        • if-else
        • switch
      • for&while循环
        • 常规
        • 遍历数组
      • 函数
        • 基础样式
        • 箭头函数
        • 可选参数
    • 面向对象
      • 枚举、接口
      • 继承
    • 模块开发
      • 导出
      • 导入

TypeScrip

TypeScript是微软开发的开源编程语言,在JavaScript的基础上拓展了一些语法,是 JavaScript 的一个超集。

TypeScript官网:https://www.typescriptlang.org/

在线测试TypeScript代码:https://www.typescriptlang.org/play

菜鸟教程:https://www.runoob.com/typescript/ts-tutorial.html

基础语法

变量的声明

TypeScript 在 JavaScript基础上加入了静态类型检查功能,因此每一个变量都有固定的数据类型。

例如:let msg: string = 'hello world

  • let: 声明变量的关键字,类似的 const代表常量

  • string:变量类型(拓展JavaScript的部分),其他常见类型如下:

    • number:整数、数值、浮点数、二进制等

    • boolean:布尔类型

    • any:不确定,可是任意类型(相当于跳过类型检查)

    • union类型:例如let u: string|number|boolean = 'hello'可以是多个指定类型中的一种

    • object:对象

      let p = {name:'jack', age: 21}
      console.log(p.name)
      console.log(p['name'])
      
复合类型
  • 数组
let names: Array<string> = ['a','b']
let age: number[] = [1,2] 
console.log(names[1])

条件控制

if-else
let num:number = 21
if(num%2===0){ // 推荐使用三个等于号判断console.log("ou")
} else{console.log("ji")
}

TypeScript 中,空字符串、0、 null 、undefined等被解析为false ,它值则为 true

switch

for&while循环

常规
for(let i=0;i<10;i++){console.log(i)
}
let num=0
while(num<10){console.log(num)
}
遍历数组
let names: Array<string> = ['a','b']
for(let i in names){console.log(i+':' names[i]) // 这种方取出来的是下标
}
for(let n of names){console.log(n) // 这种方取出来的是一个个的元素
}

函数

基础样式
function sum(x: number, y: number): number {return x+y
}
let result = sum(1,2)
console.log('1+2=' + result)
箭头函数
let sayHi = (name: string) =>{console.log('hi' + name)
}
sayHi('Jack')
可选参数
// 参数后加问号?,表示可选
function sayHi (name?: string) {name = name ? name: '无名氏' //判断,没有传入参数就赋值console.log('hi' + name)
}
sayHi('Jack')
sayHi()// 上述可赋默认值 类似python语法
function sayHi (name: string = 'Jack')  //若不传参 默认为Jack

面向对象

TypeScript 具备面向对象编程的基本语法,例如 interface 、 class 、 enum 等。也具备封装、继承、多态等面向对象基本特征。

枚举、接口

// 定义枚举 不需要写let和参数类型等
enum Msg{HI = 'hi',HELLO = 'hello'
}
// 定义接口 
interface A{say(msg: Msg):void
}
// 实现接口
class B implements A{say(msg:Msg):void{console.log(msg + "ni hao")}
}
// 初始化对象 并调用方法 
let a:A = new B()
a.say(Msg.HI)

继承

// 定义矩形类
class Rectangle{// 定义成员变量 无需letprivate width: numberprivate length: number//构造函数 无需functionconstructor(width:number,length:number){this.length=lengththis.width=width}public area():number{return this.width*this.length}
}
// 定义正方形类,继承于矩形类
class square extends Rectangle{constructor(side: number){super(side,side) //调用父类构造函数}
}let s = new square(10)
console.log('正方形面积:'+ s.area())

模块开发

应用复杂时我们可以把通用功能抽取到单独的 ts 文件,每个文件都是一个模块 (module)模块可以相互加载,提高代码复用性。

导出

// 定义类,并通过export导出
export class Rectangle{xxx
}
//  定义工具方法
export function area(rec:Rectangle) number{xxx
}

导入

// 通过import语法导入 from后写地址
import {Rectangle, area} from '../rectangle'
// 使用导入的类创建对象
let r = new Rectangle(10,20)
// 调用导入的方法
console.log(area(r))

http://www.ppmy.cn/news/1290425.html

相关文章

面向对象编程(高级)

面向对象编程&#xff08;高级&#xff09; 1、类变量和类方法 &#xff08;1&#xff09; 概念 类变量&#xff0c;也称为静态变量&#xff0c;是指在类级别声明的变量。它们与特定类相关联&#xff0c;而不是与类的实例&#xff08;对象&#xff09;相关联。每个类变量只有…

git是什么,git入门常用基本命令

文章目录 git是什么1 .git init--初始化2.git status--检测当前文件夹下面文件状态3. git add--要管理的文件4.git add . --管理当前文件夹下的所有文件5.git commit -m--生成第一个版本6.git log--查看版本的记录 git是什么 分布式&#xff0c;版本控制&#xff0c;软件 版本…

Linux下Docker Engine安装后的一些配置步骤

一些安装后的配置令Linux主机可以更好地与Docker配合使用。 0x01 以非root用户身份管理Docker Docker守护进程绑定到Unix套接字&#xff0c;而不是TCP端口。默认情况下,root用户拥有Unix套接字&#xff0c;而其他用户只能使用 sudo. Docker守护进程始终以root用户身份运行。 …

C#VB.net如何增加WinForms中复选框的大小?

如何增加.Net WinForm中复选框的大小。我尝试了“高度”和“宽度”&#xff0c;但它不会增加Box的大小。 最佳答案 复选框的大小在Windows窗体内是硬编码的&#xff0c;您不能将其弄乱。一种可能的解决方法是在现有复选框的上方绘制一个复选框。这不是一个很好的解决方案&#…

CSS 中间位置翻转动画

<template><div class"container" mouseenter"startAnimation" mouseleave"stopAnimation"><!-- 旋方块 --><div class"box" :class"{ rotate-hor-center: isAnimating }"><!-- 元素内容 -->…

Javascript 正则表达式零宽断言

在介绍正则表达式零宽断言这个概念之前&#xff0c;先看一下以下这道有关 javascript 正则表达式的题目&#xff1a; 登录注册流程是前端最常见的业务流程之一&#xff0c;注册流程少不了密码强弱度校验&#xff0c;请实现对密码的校验&#xff0c;要求满足&#xff1a; 包含大…

【Spring之创建对象源码分析】

Spring之内部创建对象源码分析 1. 看源码(AbstractBeanFactory)2. 解析 1. 看源码(AbstractBeanFactory) SuppressWarnings("unchecked")protected <T> T doGetBean(String name, Nullable Class<T> requiredType, Nullable Object[] args,boolean type…

188.【2023年华为OD机试真题(C卷)】中文分词模拟器(字典树动态规划算法—JavaPythonC++JS实现)

请到本专栏顶置查阅最新的华为OD机试宝典 点击跳转到本专栏-算法之翼:华为OD机试 🚀你的旅程将在这里启航!本专栏所有题目均包含优质解题思路,高质量解题代码,详细代码讲解,助你深入学习,深度掌握! 文章目录 188.【2023年华为OD机试真题(C卷)】中文分词模拟器(…