typescript的简介

简介

在这里插入图片描述

tsc

在这里插入图片描述

npm install -g typescript
tsc -v

作用

检查类型和语法错误,提前纠错
在这里插入图片描述
在这里插入图片描述

ts的类型

在这里插入图片描述

如何穿件带有ts的vue工程

在这里插入图片描述

作用

在这里插入图片描述

常见类型

在这里插入图片描述

用法

编写一个ts文件

let username:string = "John";let age:number = 25;let isUpdated:boolean = true;let data:any = "Hello World!";console.log(username);
console.log(age);
console.log(isUpdated);
console.log(data);

编译

 tsc .\tsDemo.ts

效果

对应的ts文件下多了一个js文件

  • ts文件是不能直接运行的,只有编译成js才能运行

这是编译之后的js文件

var username = "John";
var age = 25;
var isUpdated = true;
var data = "Hello World!";
console.log(username);
console.log(age);
console.log(isUpdated);
console.log(data);

约束字面量类型(类似于enum枚举)

在这里插入图片描述

myPrintFunction("Hello World!","center");
myPrintFunction("Hello World!","left");
myPrintFunction("Hello World!","right");function myPrintFunction(content:string,alignment:'right'|'left'|'center'):void {console.log(content,alignment);
}

接口

接口类似于java,但是要求更加严格,不能多也不能少

在这里插入图片描述

const myCat: Cat = {name: "Whiskers",age: 3
}// 报错:多了color属性
const myCat2: Cat = {name: "Whiskers",age: 3,color: "white"
}// 报错:少了age属性
const myCat3: Cat = {name: "Whiskers",
}console.log(myCat);

设置非强制类型的属性

问号是为了那些可有可无的属性准备的
在这里插入图片描述

interface Cat {name: string;age?: number;color?: string;
}

类class

在这里插入图片描述

// 类 有两个必须的  属性和构造函数  普通函数可有可无
class Animal {name: string;constructor(name: string) {this.name = name;}move(distance: number = 0) {console.log(`${this.name} moved ${distance}m.`);}
}// 使用构造器创建实例
const myAnimal = new Animal("Cat");
myAnimal.move(10);

类是可以实现接口的

类必须实现接口中的所有方法

// 类实现接口
class Student implements Person {name: string;age: number;constructor(name: string, age: number) {this.name = name;this.age = age;}// 类必须实现接口中的所有方法eat() {console.log(`${this.name} is eating.`);}// 类可以有自己的方法study() {console.log(`${this.name} is studying.`);}
}// 使用构造器创建实例
const myStudent = new Student("John", 25);
myStudent.eat();
myStudent.study();

类的继承

和java几乎是一样的

// 类继承
class Dog extends Animal {// 子类构造函数默认调用父类构造函数   构造函数可以不写constructor(name: string) {super(name);}bark() {console.log(`${this.name} is barking.`);}
}const myDog = new Dog("Buddy");
// 继承父类的方法
myDog.move(20);
// 自己的方法
myDog.bark();

小结

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/465153.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一文搞懂:AI网关这个新东西是什么意思?有没有开源免费的选择?

AI网关是什么意思?有什么用? AI网关是企业应用与内外部大模型之间的桥梁,它位于企业应用与内外部大模型的调用交汇点。 AI网关的主要功能 是 将应用请求 通过集中管理模块 转发给 1 内部自建模型、2 外部大模型服务提供商,甚至 …

在Java中,实现数据库连接通常使用JDBC

学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……) 2、学会Oracle数据库入门到入土用法(创作中……) 3、手把手教你开发炫酷的vbs脚本制作(完善中……) 4、牛逼哄哄的 IDEA编程利器技巧(编写中……) 5、面经吐血整理的 面试技…

机器人零位、工作空间、坐标系及其变换,以UR5e机器人为例

机器人中的主要坐标系 在机器人中,常用的坐标系包括: 基坐标系(Base Frame):固定在机器人基座上的坐标系,用于描述机器人的整体位置和方向,是其他所有坐标系的参考点。 连杆坐标系&#xff08…

CSS的配色

目录 1 十六进制2 CSS中的十六进制2.1 十六进制颜色的基本结构2.2 十六进制颜色的范围2.3 简写形式2.4 透明度 3 CSS的命名颜色4 配色4.1 色轮4.2 互补色4.3 类似色4.4 配色工具 日常在开发小程序中,客户总是希望你的配色是美的,但是美如何定义&#xff…

STM32——ADC

目录 1、ADC的介绍 2、ADC主要特征 3、ADC结构与引脚 4、ADC配置流程 5、示例(光敏电阻的ADC采样) 6、提示 7、结语: 1、ADC的介绍 12位ADC是一种逐次逼近型模拟数字转换器。它有多达18个通道,可测量16个外部和2个内部 信号…

Node.js——fs模块-同步与异步

本文的分享到此结束,欢迎大家评论区一同讨论学习,下一篇继续分享Node.js的fs模块文件追加写入的学习。

Python | Leetcode Python题解之第528题按权重随机选择

题目: 题解: class Solution:def __init__(self, w: List[int]):self.pre list(accumulate(w))self.total sum(w)def pickIndex(self) -> int:x random.randint(1, self.total)return bisect_left(self.pre, x)

道品科技的水肥一体化智能灌溉:开启现代农业的创新征程

水肥一体化智能灌溉作为一种现代农业技术,其通过对水分与养分供应的有效整合,致力于营造作物的最佳生长环境。此项技术的核心要义在于凭借智能化系统精准把控灌溉与施肥的流程,进而提升水资源的利用效率,降低肥料的浪费程度&#…

GitHub个人主页美化

效果展示 展示为静态效果,动态效果请查看我的GitHub页面 创建GitHub仓库 创建与GitHub用户名相同的仓库,当仓库名与用户名相同时,此仓库会被视作特殊仓库,其README.md(自述文件)会展示在GitHub个人主页…

QT5串口多线程--派生类加moveToThread

QT5串口多线程--派生类加moveToThread Chapter1 QT5串口多线程--派生类加moveToThread前言新建工程源码serialobject.hserialobject.cppmanager.hmanager.cppwidget.hwidget.cpp 测试 Chapter2 QT在PC开发中多串口通信有哪些方法方法实现方案一:需要注意的是&#x…

框架学习01-Spring

一、Spring框架概述 Spring是一个开源的轻量级Java开发框架,它的主要目的是为了简化企业级应用程序的开发。它提供了一系列的功能,包括控制反转(IOC)、注入(DI)、面向切面编程(AOP)…

十年码农的编程心得分享

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

【网络安全】|nessus使用

1、扫描结果分析: Sev:漏洞的严重性级别 CVSS:量化漏洞严重性的标准,通过计算得出一个分数,分数越高表示漏洞越严重。 VPR:基于风险的评分系统,帮助组织优先处理风险最高的漏洞。 EPSS&#xf…

为什么越来越多人开始用云电脑?网友道出了真相

近期,3A游戏大作《黑神话:悟空》的横空出世,成功激起大多数人对国产游戏的兴趣。然而,没有一台高配置的电脑,就无法在《黑神话:悟空》中获得震撼的游戏体验。想要配齐处理器、显卡、内存等硬件,…

W6100-EVB-Pico2评估板介绍

目录 1 简介 2 硬件资源 2.1 硬件规格 2.2 引脚定义 2.3 工作条件 3 参考资料 3.1 RP2350 数据表 3.2 W6100 数据表 3.3 原理图 原理图 & 物料清单 & Gerber 文件 3.3 尺寸图(尺寸:mm) 3.4 参考例程 认证 CE FCC 4 硬…

VUE2升级成VUE3的优化与区别

大家好,我是小编阿贤。欢迎各位大神关注《全栈技术圈》,让技术更加简单易懂。 1. vue2和vue3实例区别 1.1 创建一个vue2实例 在vue2里面的Vue是一个构造函数,通过该构造函数创建一个Vue实例,data选项可以是对象,也可以…

ProLightsfx新的出发–从CSDN到WordPress

原文链接:ProLightsfx新的出发--从CSDN到WordPress_ProLightsfx的技术分享 (https://www.prolightsfxjh.com/article/article-new-start/) 大概有差不多2年时间没有在csdn发布文章了。可能主要是最近几年工作有些疲惫、精神有些懈怠&#xff…

「Mac畅玩鸿蒙与硬件19」鸿蒙UI组件篇9 - 自定义动画实现

自定义动画让开发者可以设计更加个性化和复杂的动画效果,适合表现独特的界面元素。鸿蒙提供了丰富的工具,支持通过自定义路径和时间控制来创建复杂的动画运动。本篇将带你学习如何通过自定义动画实现更多样化的效果。 关键词 自定义动画动画路径贝塞尔曲…

GPIO子系统中Controller驱动源码分析

往期内容 本专栏往期内容: Pinctrl子系统和其主要结构体引入Pinctrl子系统pinctrl_desc结构体进一步介绍Pinctrl子系统中client端设备树相关数据结构介绍和解析inctrl子系统中Pincontroller构造过程驱动分析:imx_pinctrl_soc_info结构体Pinctrl子系统中c…

【Linux系统编程】第四十二弹---多线程编程全攻略:涵盖线程创建、异常处理、用途、进程对比及线程控制

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、线程创建 2、线程异常 3、线程用途 4、进程 VS 线程 5、线程控制 5.1、创建和等待线程 1、线程创建 线程能看到进程的大…