【TypeScript 一点点教程】

文章目录

  • 一、开发环境搭建
  • 二、基本类型
    • 2.1 类型声明
    • 2.2 基本类型
  • 三、编译
    • 3.1 tsc命令
    • 3.2 tsconfig.json
      • 3.2.1 基本配置项
        • include
        • exclude
        • extends
        • files
      • 3.2.2 compilerOptions编译器的配置项
  • 四、面向对象
    • 4.1 类
    • 4.2 继承
    • 4.3 抽象类
    • 4.4 接口


一、开发环境搭建

  1. 下载Node.js《NodeJs(压缩包版本)安装与配置》
  2. npm 全局安装 TypeScript
npm i -g typescript

二、基本类型

2.1 类型声明

  • 类型声明是TS非常重要的一个特点
  • 通过类型声明可以指定TS中变量(参数,形参)的类型
  • 指定类型后,当为变量赋值时,TS编译器会自动检查值是否符合类型声明,符合则赋值,否则报错
  • 简而言之,类型声明给变量设置了类型,使得变量只能存储某种类型的值
  • 语法:
let 变量:类型;
let 变量:类型 = 值;
function fn(参数:类型, 参数: 类型):类型{}

Ts也可以自动类型判断。

2.2 基本类型

在这里插入图片描述

三、编译

3.1 tsc命令

使用tsc命令可以将ts文件编译成js文件

tsc [文件名].ts 

使用 tsc -w命令可以使ts文件监测到变化时,自动编译

tsc [文件名].ts -w

但是每个文件都这样做就会十分麻烦。
可以在项目目录下创建一个tsconfig.json,然后在该目录下运行tsc命令,会发现所有文件皆完成了编译。当然也可以在目录下使用tsc -w

3.2 tsconfig.json

关于tsconfig.json文件,不但可以自己创建,还可以使用在tsc -init 命令自动生成。
接下来来了解一下tsconfig.json中都有哪些配置项

3.2.1 基本配置项

include

该选项用于设置哪些目录下的文件需要编译。

exclude

该选项是编译时忽略哪些目录

extends

定义继承哪些文件。

"extends":"./configs/base"
files

指定哪些文件需要编译,一般只用于小项目。

3.2.2 compilerOptions编译器的配置项

"compilerOptions": {//target 用来指定ts被编译为的ES的版本"target": "es2015",// module 指定要使用的模块化的规范"module":"es2015",//lib用来指定项目中要使用的库"lib": ['dom','es6'],//outDir用来指定编译后文件所在的目录"outDir": "./dist",//将代码合并为一个文件"outFile": "./dist/app.js",//是否对js文件进行编译,默认是false"allowJs": true,//是否检查js代码是否符合规范"checkJs": true,//是否移除注释。"removeComments": true,//不生成编译后的文件(不怎么用)//"noEmit": false,//当有错误时不生成编译后的文件。"noEmitOnError": true,//设置编译后的文件是否使用严格模式,默认false"alwaysStrict":false//不允许隐式的any 类型,(隐式的any 类型即 function(a,b)中的a和b皆为隐式的any类型)"noImplicitAny":false//不允许不明确类型的this ()// function(){// 不明确类型的this		//  alert(this);//} 改为  function(this: Window)"noImplicitThis": true,//严格的检查空值"strictNullChecks": true,//所以严格检查的总开关。"strict":true,
}

四、面向对象

4.1 类

class Dog{private name:string;private age:number;//静态只读static readonly bark ='汪汪'//构造函数constructor(name: string,age: number){this.name = name;this.age = age;}getName(){return this.name;}setName(value: string){this.name = value;}
}

4.2 继承

(function(){class Animal{name:string;age:number;//构造函数constructor(name: string,age: number){this.name = name;this.age = age;  }sayHello(){console.log('动物叫')}}class Dog extends Animal{sayHello() {super.sayHello();}}class Cat extends Animal{}
})

4.3 抽象类

(function(){abstract class Animal{name:string;constructor(name: string){this.name = name;}//定义抽象方法abstract sayHello():void}class Dog extends Animal{sayHello(): void {throw new Error("Method not implemented.");}   }
})

4.4 接口

(function(){interface myInterface{name:stringage: numbersayHello():void;}class MyClass implements myInterface{name: string;age: number;sayHello(): void {console.log('大家好');}}
})

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

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

相关文章

usb pd message结构解析

usb pd 3.1规范定义了三种类型的消息: •简短的控制消息,用于管理端口伙伴之间的消息流或交换不需要额外数据的消息。控制消息的长度为16位。 •用于在一对端口伙伴之间交换信息的数据消息。数据报文的长度范围是48 ~ 240位。 有三种类型的数据消息: ▪那些用于暴露…

【区块链+绿色低碳】双碳数字化管控平台 | FISCO BCOS应用案例

地方政府、园区及企业实现“双碳”目标过程中存在一些挑战与难点: 1. 管理者难以掌握完整、准确、全面的碳排放数据进行科学决策:由于碳排放核算需要对数据的来源、核算方法 的规范性和采集方法的科学性有严格要求,当前面临碳排放数据数据采…

中国一汽发布“一汽●北斗云工作台” 意在推动企业数智化转型

“一汽●北斗云工作台”已经实现100%自主可控,覆盖企业全价值链、全体系、全过程、全岗位的工作需求。目前一汽2.3万个业务单元实现线上作业,产品开发效率提升30%,订单交付周期缩短25%以上。”7月17日,中国第一汽车集团有限公司&a…

智能路面裂缝检测:基于YOLO和深度学习的全流程实现

引言 路面裂缝检测是维护道路质量和延长道路寿命的重要手段。传统的检测方法往往费时费力且易受人为因素影响。为了提高检测效率和准确性,本文介绍了一种基于深度学习的路面裂缝检测系统。该系统包括用户界面,利用YOLO(You Only Look Once&a…

Typescript学习笔记(1.0)

1.ts开发环境:先安装Node,然后执行命令npm i -g typescript,这里使用的是npm命令,也可以使用pnpm和yarn安装,不过需要额外安装pnpm 和yarn。 2.第一个一ts为后缀的文件,使用命令: tsc *.ts 就会生成对应…

electron 网页TodoList工具打包成win桌面应用exe

参考: electron安装(支持win、mac、linux桌面应用) https://blog.csdn.net/weixin_42357472/article/details/140643624 TodoList工具 https://blog.csdn.net/weixin_42357472/article/details/140618446 electron打包过程: 要将…

【吊打面试官系列-ZooKeeper面试题】Zookeeper 的典型应用场景

​大家好,我是锋哥。今天分享关于 【Zookeeper 的典型应用场景 】面试题,希望对大家有帮助; Zookeeper 的典型应用场景 Zookeeper 是一个典型的发布/订阅模式的分布式数据管理与协调框架,开发人员可以使用它来进行分布式数据的发布…

学习React(状态管理)

随着你的应用不断变大,更有意识的去关注应用状态如何组织,以及数据如何在组件之间流动会对你很有帮助。冗余或重复的状态往往是缺陷的根源。在本节中,你将学习如何组织好状态,如何保持状态更新逻辑的可维护性,以及如何…

基于自组织映射的检索增强生成

大量数据用于训练大型语言模型 (LLM),该模型包含数百万和数十亿个模型参数,目的是生成文本,例如文本补全、文本摘要、语言翻译和回答问题。虽然 LLM 从训练数据源中开发知识库,但总有一个训练截止日期,在此日期之后 LL…

java jts 针对shp含洞多边形进行三角剖分切分成可行区域

前言 java jts 提供了Delaunay三角剖分的相关方法,但是该方法不考虑含洞的多边形的。虽然 jts 的 ConformingDelaunayTriangulationBuilder 类可以通过提供线段约束的方式防止切割到洞内,但是仅支持最多99条线段,虽然可以通过重写破除99条线段的约束&am…

Java——————接口(interface) <详解>

1.1 接口的概念 在现实生活中,接口的例子比比皆是,比如:笔记本电脑上的USB接口,电源插座等。 电脑的USB口上,可以插:U盘、鼠标、键盘...所有符合USB协议的设备 电源插座插孔上,可以插&#xff…

CSS Text(文本)

CSS Text(文本) CSS中的text属性用于控制文本的显示方式,包括字体、大小、颜色、对齐方式等。本文将详细介绍CSS中文本属性的各种用法和技巧,帮助您更好地设计和布局网页文本。 1. 字体属性 1.1 font-family font-family属性用于设置文本的字体。可以…

OS Copilot初体验的感受与心得

本文介绍体验操作系统智能助手OS Copilot后,个人的一些收获、体验等。 最近,抽空体验了阿里云的操作系统智能助手OS Copilot,在这里记录一下心得与收获。总体观之,从个人角度来说,感觉这个OS Copilot确实抓住了不少开发…

TypeScript极速梳理

TypeScript简介 TypeScript是对JavaScript的超集它对JS进行了扩展,向JS中引入了类型的概念,并添加了许多新的特性TS代码需要通过编译器编译为JS,然后再交由JS解析器执行TS完全兼容JS,换言之,任何的JS代码都可以直接当成JS使用相较…

Vue Router【实用教程】(2024最新版)vue3 路由管理

Vue Router 是 Vue 官方的客户端路由解决方案,在单页应用 (SPA) 中,用户在应用中浏览不同页面时,URL 会随之更新,但页面不需要从服务器重新加载。 核心思想: 通过配置路由来告诉 Vue Router 为每个 URL 路径显示哪些…

EasyMedia转码rtsp视频流flv格式,hls格式,H5页面播放flv流视频

EasyMedia转码rtsp视频流flv格式,hls格式 H5页面播放flv流视频 文章最后有源码地址 解决海康视频播放视频流,先转码后自定义页面播放flv视频流 先看效果,1,EasyMedia自带的页面,这个页面二次开发改动页面比较麻烦 …

牛客14666(优先屏障) + 牛客14847(Masha与老鼠)

文章目录 写在前面14666-优先屏障思路编程 14847-Masha与老鼠思路编程 写在前面 昨天刷的这两道题写了很久,特别是Masha与老鼠这道题,写了都快3个小时,主要还是理解代码逻辑有点难,不过写完之后感觉收获挺大的,给我以…

张高兴的 MicroPython 入门指南:(三)使用串口通信

目录 什么是串口使用方法使用板载串口相互通信 硬件需求电路代码使用板载的 USB 串口参考 什么是串口 串口是串行接口的简称,这是一个非常大的概念,在嵌入式中串口通常指 UART(Universal Asynchronous Receiver/Transmitter,通用异步收发器)。…

gitlab查询分支API显示不全,只有20个问题

背景 gitlab查询分支API需要查询所有分支,且分支数量大于20,但目前调用接口返回的branch最多就显示了20个 解决方案 根据GitLab的文档,查询分支API默认最多返回20个分支。如果要一次性显示80个分支,可以使用分页参数来获取所有…

Vue的单元测试和端到端测试:确保组件可靠性与应用完整性

引言 在软件开发过程中,测试是保证代码质量和应用稳定性的关键环节。Vue.js 作为流行的前端框架,提供了一套完善的测试工具和生态系统,支持开发者进行单元测试和端到端测试。本文将深入探讨如何为Vue组件编写单元测试,并讨论如何使用Cypress等工具进行端到端测试。 单元测…