TypeScript学习记录Ts基础

news2024/11/20 20:25:03

安装及初步使用

1.CMD全局安装

npm install -g typescript

2.检查是否安装成功

tsc -V 
如报错tsc 不是内部或外部命令,也不是可运行的程序或批处理文件[可参考](https://www.cnblogs.com/sanyekui/p/13157918.html)

3.在vscode中新建ts文件01_ts.ts

let str:string='zd';//冒号代表给变量指定类型
console.log(str)

4.新建页面index.html,引入ts文件

<script src="./01_ts.ts"></script>

点开页面会报错,因为浏览器不支持ts语法,所以要转换成js文件
5.ts转js文件
文件夹在终端打开后在终端输入 tsc 01_ts.ts -watch(注意01_ts.ts是文件名)监听这个ts文件变化转换成js,随后会生成一个同名js文件,在页面script中引入同名js文件即可
在这里插入图片描述6.vscode中自动编译ts代码 意思是自动生成js文件
选择文件夹在终端打开并输入tsc --init生成一个json文件
在这里插入图片描述需要在json文件中设置如下图
在这里插入图片描述然后点击终端->运行任务->显示所有任务->监视你文件夹下的tsconfig-json
新建一个.ts文件,就会自动生成js文件夹及其下边自动编译的js文件,html直接就可以在script中引入js文件了

在这里插入图片描述

类型注解

类型注解就是给变量、参数等指定类型。

    function greeter (person: string) {
      return 'Hello, ' + person
    }
    let user = 'Yee'
    let n:Number=123
    console.log(greeter(user))

接口

接口简单理解为一种约束

// 1.定义一个接口
interface My{
    first:string //姓氏
    last:string //名字
}

//2.定义一个函数用来 输出姓名
function WriteName(person:My){//给传入的person形参指定了My接口,所以传进来的形参必须符合My的规范比如变量名和类型
    return person.first+'_'+person.last
}

//3.-定义一个对象p1
let p1={
    first:'张',
    last:'三'
}
console.log(WriteName(p1)) //张_三

//4.-定义一个对象p2
let p2={
    first:'张',
}
console.log(WriteName(p2)) //报错,因为缺少last,缺接口中任意一个都不行

//5.-定义一个对象p3
let p3={
    first1111:'张',
    last:'三'
}
console.log(WriteName(p3)) //报错,因为first1111与接口中不对应

//定义一个类
class Person { //不存在变量提升,必须先声明后使用
    name:string //这是类里的公共属性
    age:number
    
    //constructor 方法是类的构造方法
		//1.是一个默认方法,通过new命令创建该对象实例时,自动调用该方法
		//2.this是实例对象
		//3.一个类必须得有constructor方法,如果没有显示定义,会默认添加一个constructor
    constructor(name:string, age:number) { 
        this.name = name;
        this.age = age;
    }
		//类的方法,都在类的prototype上
    say() { 
        return '我叫' + this.name + '今年' + this.age + '岁'
    }
}
//实例化对象
let p2 = new Person('李四', 12);
console.log(p2.say())

类与接口的合用

class Person {
    name:string
    age:number
    constructor(name:string, age:number) {
        this.name = name;
        this.age = age;
    }
}
interface personJieKou{
    name:string
    age:number
}
function WritePerson(person:personJieKou){//代替了上边的say方法
    return `类与接口合用:我${person.name}今年${person.age}`
}
let Jperson={
    name:'赵武',
    age:100
}
console.log(WritePerson(Jperson))

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

iPhone上5款视频压缩工具推荐,学会轻松压缩视频

随着技术的不断进步&#xff0c;现在移动端设备已经能够轻松地拍摄高清视频&#xff0c;然而这也带来了存储压力的增大。苹果手机更新换代频繁&#xff0c;但内存空间却没有跟着变大&#xff0c;因此如何压缩视频成为了一个重要的问题。 苹果手机怎么压缩视频&#xff1f;有什…

01-ASPICE体系知识

1. ASPICE是什么&#xff1f; ASPICE: 全称是"Automotive Software Process Improvement and Capacity Determination"&#xff0c;汽车软件过程改进及能力评定&#xff0c;是汽车行业用于评价软件开发团队的研发能力水平的模型框架。最初由欧洲20多家主要汽车制造商…

上位机:创建WPF应用并使用控件完成控件交互

创建WPF应用并使用控件完成控件交互 1.XAML是WPF技术中专门用于设计UI的语言。 2.优点,XAML是一种声明型语言,只能用来声明一些UI元素、绘制UI和动画,不能在其中加入程序逻辑。实现UI与逻辑的剥离。 下面使用visual studio2019建立一个WPF项目: 进入项目,点击运行,然后…

FluxMQ—引领物联网新时代的高性能MQTT网关

FluxMQ—引领物联网新时代的高性能MQTT网关 随着物联网技术的快速发展&#xff0c;人们越来越意识到实时、可靠、安全的数据传输对于智能化的生产与生活的重要性。因此&#xff0c;市场对于高性能的物联网数据传输解决方案有着强烈的需求。FluxMQ正是为满足这一需求而诞生的一…

苹果电脑怎么用移动硬盘ntfs 苹果电脑移动硬盘怎么退出

Mac电脑默认不支持写入NTFS格式移动硬盘&#xff0c;这导致很多Mac用户的工作过程遇到很多不必要的麻烦。如何才能让Mac电脑“永久”拥有写入NTFS格式移动硬盘的权限呢&#xff1f;不少用户使用完移动硬盘后直接拔出&#xff0c;这可能会导致未保存的文件丢失。使用完移动硬盘后…

城市供水绩效指标解释

1.城市供水绩效评价指标体系构成 1.1.1绩效指标体系横向构成包括&#xff1a; 背景信息&#xff1a;用于计算指标的数据。 解释性因素&#xff1a;靠管理不易改变的数据。 绩效指标&#xff1a;若干个基础数据的综合运算结果&#xff0c;用于评价所提供服务的有效性…

Python每日一练(20230418)

目录 1. 将有序数组转换为二叉搜索树 &#x1f31f;&#x1f31f; 2. 四数之和 &#x1f31f;&#x1f31f; 3. 排序数组查找元素的首末位置 &#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C…

JAVA基于局域网的聊天室系统的设计与实现

本文介绍了采用JAVA编程开发视频聊天系统的一套比较常用的解决方案。文字聊天采用TCP模式&#xff1b;语音视频聊天采用UDP模式&#xff0c;在客户端之间点对点的进行。在该方案中&#xff0c;通过函数库VFW来实现视频捕获、影像压缩以及影像播放。微软公司提供的专门用于视频捕…

Python入门教程+项目实战-10.2节: 列表的操作符

目录 10.2.1 列表中的常用操作符 10.2.2 []操作符: 索引访问列表 10.2.3 [:]操作符&#xff1a;列表的切片 10.2.4 操作符&#xff1a;列表的加法 10.2.5 *操作符&#xff1a;列表的乘法 10.2.6 列表的关系运算 10.2.7 in操作符&#xff1a;查找元素 10.2.8 知识要点 …

香港电讯牌照申请介绍

香港对无线电发射器具的进出口实施法律管制&#xff0e;《电讯条例》规定进出口手提电话的人士须持有许可证或无线电商牌照。例如&#xff1a;手机、3C类产品、手提电脑等无线电子产品&#xff0c;通关时须要出示的证件之一。 一、香港电讯牌照申请需提供资料&#xff1a;1、有…

py逆向-NSSCTF-[NISACTF 2022]ezpython

目录 题目&#xff1a; 学到的点&#xff1a; 题目&#xff1a; 之前没遇到过这样的题&#xff0c;看了大佬的wp了解很多&#xff0c;记录一下 放到ida中打开&#xff0c;尝试分析了一下&#xff0c;没头绪 看了题解知道是一道py逆向的题目&#xff0c;需要用到这个工具pyin…

Elasticsearch+filefeat+Kibana(EFK)架构学习

一. 安装ES7集群 准备三台服&#xff0c;最少配置2core4G,磁盘空间最少20G,并关闭防火墙设置集群免密登录&#xff0c;方便scp文件等操作参考集群免密登录方法下载es7的elasticsearch-7.17.3-x86_64.rpm包安装 yum -y localinstal elasticsearch-7.17.3-x86_64.rpm修改node1配…

【SpringMVC】SpringMVC(一:第一个SpringMVC项目)

文章目录1. SSM优化的方向2.SpringMVC的优点3. SpringMVC的优化方向4.SpringMVC执行流程5.第一个SpringMVC项目5.1 创建工程5.2 添加依赖5.3 替换web.xml5.4 开发流程5.4.1完成springmvc.xml文件的配置5.4.2在web.xml文件中注册SpringMVC框架。5.4.3 编写控制器5.4.4 开发页面&…

【Spring Boot】SpringBoot参数验证以及实现原理

文章目录前言SpringBoot参数验证技巧&#xff08;12个技巧&#xff09;一、使用验证注解二、使用自定义验证注解三、在服务器端验证四、提供有意义的错误信息五、将 i18n 用于错误消息六、使用分组验证七、对复杂逻辑使用跨域验证八、对验证错误使用异常处理九、测试你的验证逻…

天啊!炫云的这个智能优化太给力了,渲染费竟然降了这么多!

兄弟们&#xff0c;你们是不是有时候一不小心把自己某一个参数设置错了&#xff0c;导致自己提交到云渲染平台的效果图费用突然增多&#xff0c;找平台理论最后发现是自己参数设置错误导致的问题&#xff0c;又或者对自己的参数设置把握不准的&#xff1f;现在这些问题你都可以…

计算机颜色学---CIE 色度图以及饱和度处理

前言 了解颜色相关理论与成像知识&#xff0c;对于深入了解视觉相关算法与ISP算法而言十分重要&#xff0c;了解颜色理论&#xff0c;离不开CIE色度图&#xff1b; CIE 1931色度图相关知识 CIE 1931 Yxy色度图。外形形似马蹄&#xff0c;所以也叫“马蹄图”&#xff1b; 在色…

ViTPose

具体而言&#xff0c;ViTPose使用普通和非分层vit Transformer[14]作为backbone来提取给定人物实例的特征图&#xff0c;其中backbone通过掩蔽图像建模借口任务&#xff08;例如MAE[16]&#xff09;进行预训练&#xff0c;以提供良好的初始化。然后&#xff0c;下面的轻量级解码…

c++获取时间戳的方法总结

目录1. 系统级时间戳获取方法1.1 Windows系统获取时间间隔的方式1.2 Linux系统获取时间间隔的方式1.3 获取时间戳2. c语言获取时间戳1. 系统级时间戳获取方法 1.1 Windows系统获取时间间隔的方式 API说明 Windows平台下使用 GetLocalTime VOID GetLocalTime(LPSYSTEMTIME lp…

axios起步——介绍和使用 post请求

axios起步——介绍和使用基本用例post请求场景复现核心干货axios简介axios是什么&#xff1f;axios特性axios安装axios基本用例发起一个GET请求用axios发起POST请求发起一个POST请求发起多个POST请求利用json-server创建服务&#xff0c;发起四种请求场景复现 最近学习与前端相…

Vue:组件化开发

一、组件的使用 1、创建组件(结构HTML 交互JS 样式CSS) Vue.extend({该配置项和new Vue的配置项几乎相同&#xff0c;略有差别}) 区别&#xff1a;①创建vue组件的时候&#xff0c;配置项中不能使用el配置项。(但是需要使用template配置项来配置模板语句) ②配置项中的da…