TypeScript 初体验
TypeScript学习
1 安装环境
a 首先安装node.js
node.js 用来将ts文件解析成js文件 供浏览器使用;
解析ts文件 tsc filename.ts
b. 使用npm (node.js的包管理器)下载typescript,安装完node.js 就已经安装好了nmp
下载命令为: npm install -g typescript
2语法:
// let {变量名} :{类型}
let a:number;
a=10;
let b='hello';
// 定义参数和返回值的类型
//function {方法名称}({形参}:{类型},...):{方法返回值数据类型}
function sum(a:number,b:number):number
{
return a+b;
}
let any: any; //关闭ts 使用js 动态类型 不建议使用
let unk: unknown; //不能赋值给其他类型
//字面量 “|”联合类型
let bs: boolean | string;
bs = false;
bs = 'hello'
console.log(` let bs: boolean | string return : ${bs}`);
//断言
/*告诉解析器变量的实际类型
* 变量 as Type
* <Type>变量
*/
user = bs as string;
user = <string>bs;
3 编译 tsconfig.json
在根目录配置tsconfig.json 直接执行tsc 可以编译配置文件中配置的文件
{
"include": ["./src/**/*"],
"compilerOptions": {
"outDir": "./dist",
"target": "es6",
...
}
}
4 webpack 配置
1、npm 初始化目录 生成一个webpack.json文件
npm init -y
webpack.json 用来配置项目基本信息,命令,项目依赖等
2、npm 安装依赖库 webpack webpack-cli typescript tsloader
npm i -D webpack
npm i -D webpack-cli
npm i -D typescript
npm i -D ts-loader
3、编辑webpack.config.js 文件
const path=require("path");
//webpck 所有的配置信息都应该写在module.exports中
module.exports= {
mode:'devlopment',
entry:"./src/index.ts",
//指定打包文件路径
output:{
path:path.resolve(__dirname,'dist'),
filename:'bundle.js'
},
//webpack 打包使用的模块
module:{
rules:[{
test:/\.ts$/,//指定规则生效的文件
//要使用的loader
use:'ts-loader',
exclude:/node_modules/,
}]
}
}
4、编辑tsconfig.json
{
//编译根目录下所有文件
"include": ["./src/**/*"],
"exclude":["./node_modules/"]
//编译选项
"compilerOptions": {
"outDir": "./dist",//编译后文件的输出目录为根目录下的dist
"target": "es6",// 编译为es6版本的js
"noImplicitAny": true
}
}
5、webpack.json添加命令 “scripts”节点下
"build":"webpack"
6 运行打包程序
nmp run build
进阶:
安装html-webpack-plugin
生成引用文件的html
安装webpack-dev-server
使用npm作为开发服务器 启动项目
安装babel 可以配置处理浏览器兼容性
相关知识:
.ts扩展名的文件为 TypeScript代码文件
https://www.tslang.cn/docs/handbook/typescript-in-5-minutes.html
npm run dev ‘npm'是什么
npm是干什么的?为什么要使用npm?(适合不太了解 npm 的新人阅读)
安装完node.js之后就已经安装好了npm
NPM 的思路大概是这样的:
买个服务器作为代码仓库(registry),在里面放所有需要被共享的代码
发邮件通知 jQuery、Bootstrap、Underscore 作者使用 npm publish 把代码提交到 registry 上,分别取名 jquery、bootstrap 和 underscore(注意大小写)
社区里的其他人如果想使用这些代码,就把 jquery、bootstrap 和 underscore 写到 package.json 里,然后运行 npm install ,npm 就会帮他们下载代码
下载完的代码出现在 node_modules 目录里,可以随意使用了。
这些可以被使用的代码被叫做「包」(package),这就是 NPM 名字的由来:Node Package(包) Manager(管理器)。
node.js
node.js 是一种javascript的运行环境,能够使得javascript脱离浏览器运行。Node.js官网
webpack 官网:
https://www.jqhtml.com/7626.html
webpack是什么?
webpack 是一个现代的 JavaScript 应用程序的模块打包器(module bundler)。
实现按需加载,代码压缩
TypeScript 初体验的更多相关文章
- TypeScript初体验
第一次运行TypeScript 1.创建文件夹并初始化项目 mkdir ts-demo cd ts-demo npm init -y 2.安装typescript与ts-node # 局部安装 npm ...
- .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
不知不觉,“.NET平台开源项目速览“系列文章已经15篇了,每一篇都非常受欢迎,可能技术水平不高,但足够入门了.虽然工作很忙,但还是会抽空把自己知道的,已经平时遇到的好的开源项目分享出来.今天就给大家 ...
- Xamarin+Prism开发详解四:简单Mac OS 虚拟机安装方法与Visual Studio for Mac 初体验
Mac OS 虚拟机安装方法 最近把自己的电脑升级了一下SSD固态硬盘,总算是有容量安装Mac 虚拟机了!经过心碎的安装探索,尝试了国内外的各种安装方法,最后在youtube上找到了一个好方法. 简单 ...
- Spring之初体验
Spring之初体验 Spring是一个轻量级的Java Web开发框架,以IoC(Inverse of Control 控制反转)和 ...
- Xamarin.iOS开发初体验
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKwAAAA+CAIAAAA5/WfHAAAJrklEQVR4nO2c/VdTRxrH+wfdU84pW0
- 【腾讯Bugly干货分享】基于 Webpack & Vue & Vue-Router 的 SPA 初体验
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57d13a57132ff21c38110186 导语 最近这几年的前端圈子,由于 ...
- 【Knockout.js 学习体验之旅】(1)ko初体验
前言 什么,你现在还在看knockout.js?这货都已经落后主流一千年了!赶紧去学Angular.React啊,再不赶紧的话,他们也要变out了哦.身旁的90后小伙伴,嘴里还塞着山东的狗不理大蒜包, ...
- 在同一个硬盘上安装多个 Linux 发行版及 Fedora 21 、Fedora 22 初体验
在同一个硬盘上安装多个 Linux 发行版 以前对多个 Linux 发行版的折腾主要是在虚拟机上完成.我的桌面电脑性能比较强大,玩玩虚拟机没啥问题,但是笔记本电脑就不行了.要在我的笔记本电脑上折腾多个 ...
- 百度EChart3初体验
由于项目需要在首页搞一个订单数量的走势图,经过多方查找,体验,感觉ECharts不错,封装的很细,我们只需要看自己需要那种类型的图表,搞定好自己的json数据就OK.至于说如何体现出来,官网的教程很详 ...
随机推荐
- jquery-easyui环境的搭建及测试
对于软件开发者来说,一个良好的前端框架不仅能够使页面优美可观而且还能够大大的提高开发效率.提高系统整体界面的美观,框架将常用的功能封装完成,减少工作量.前端框架目前也比较多,小编本次主要介绍下easy ...
- 系统基础优化( 创建yum私有仓库最详细操作及解释 )
目录 系统基础优化 一.Linux中安装软件的方式 安装方式 三种安装方式的区别 二.RPM安装☆ 1.安装及其他命令 2.手动下载软件包,可将其拖入shell中自动传入 1).手动网页下载软件包 2 ...
- MyBatis功能点一:二级缓存cache
对于Mybatis缓存分作用域等维度区别一.二级缓存特点如下图: 分析缓存源码首先得找到缓存操作的入口:前面已经分析,sqlsesion.close()仅对一级缓存有影响,而update等对一/二级缓 ...
- 请求XSS攻击原理
起因 巨人的肩膀 一个神秘URL酿大祸,差点让我背锅! (qq.com)
- CentOS7防火墙firewall
一.Firewall 1. 从CentOS7开始,默认使用firewall来配置防火墙,没有安装iptables(旧版默认安装). 2. firewall的配置文件是以xml的格式,存储在 /usr/ ...
- windows痕迹清理的基本思路和思考逻辑
1.痕迹清理的基本概念 在渗透测试的过程结束后清理自己在从开始接触到目标计算机是开始所有操作的痕迹 2.痕迹清理的目的 为下一步的渗透测试拖延时间 提高隐蔽性 所有的痕迹清理都不是绝对的,只要和计算机 ...
- Excel制作图表太单调了,用哪些可视化分析工具?
那么在如今"颜值为王"的现在,如何将数据展现得更好看,让别人更愿意看,这也是一个技术活.好比公司领导让你对某一个项目得研究成果做汇报,那么你不可能给他看单纯的数据一样,你需要让数 ...
- NFA转化为DFA
NFA(不确定的有穷自动机)转化为DFA(确定的有穷自动机) NFA转换DFA,通常是将带空串的NFA(即:ε-NFA)先转化为不带空串的NFA(即:NFA),然后再转化为DFA. 提示:ε是空串的意 ...
- 如何在win10系统上安装linux子系统
对于软件开发人员来说,linux基本上是一个绕不过去的槛. 因为工作经常要用到linux,电脑用纯linux还是windows + 虚拟机装linux,我一直纠结. 如果装个纯linux,则一些win ...
- 【基础知识】Intel CPU体系结构|x86是什么意思
看了<计算机系统结构>.<深入理解计算机系统>.<大话处理器>等经典书籍,也在google上搜了一大堆资料,前前后后.断断续续的折腾了一个多月,终于想通了,现在把自 ...