VSCode+Nodejs+Typescript前端开发环境
1.安装Node.js
下载地址:https://nodejs.org/en
lts版本: 长久稳定版本
安装:默认安装就可以了
验证:node
2.VSCode
下载地址:https://code.visualstudio.com/Download
安装:默认安装
语言切换: 安装中文插件,重启
2.1 修改终端cmd模式:
1.点击设置图标,选择Command Palette
2.输入:Terminal:select To Next Command
3.点击+选择 select Default Profile
4.选择cmd.exe
5.重启VSCode,成功后
3.支持TypeScript
TypeScript是JavaScript的超集,强制进行数据类型的说明
TS的工作流程:
- 编写TS代码
- 将TS代码编译成JS代码
- node执行JS代码
安装typescript:npm install -g typescript
tsc main.ts 编译单个ts文件
tsc -b 编译当前目录的所有ts文件
4.配置TypeScript
生成配置文件
tsc --init 自动创建 tsconfig.json文件
4.1 修改配置文件
1. tsconfig.json文件取消注释 sourceMap:True
sourceMap:True:生成映射文件
2.重新编译,产生main.js.map文件
3.可以启动调试,调试main.ts文件
5.TypeScript开发流程
- tsc -w 监视模式下自动编译
- 自动生和ts同名的js,js.map文件
- 希望隐藏同名的
- 编写TS代码
- ctrl+f5 或者f5 运行
- F5:调试模式,遇到断点会停下来
- Ctrl+F5:直接运行
5.1 VSCode的配置文件
5.1.1 打开setting.json
1.设置--setting
2.输入file,添加需要排除的文件
3.点击右上角的文件图标,打开setting.json
4.编辑setting.json
{ "typescript.locale": "zh-CN", "terminal.integrated.defaultProfile.windows": "Command Prompt", "files.exclude": { "**/*.js": {"when":"$(basename).ts"}, "**/*.js.map":{"when":"$(basename)"} } }
6.TS语法
语法底层是JS
扩展的是:数据类型
6.1 变量的声明
关键字:
- var:申明变量,写在函数外,就是全局变量,写在函数内就是局部变量,谨慎使用
- let:申明变量,作用域仅限代码块内,可以修改
- const 申明常量,作用域仅限代码块内,不可修改
数据类型:
- 数字
- 字符串
- 布尔
- 数组
- 任意类型
let myname = "张三" const age: number = 18; let is_man: boolean = true let list: number[] = [1,2,3,4,5,6,7] let str_list: string[] = ['a',"b","c"] let list_a: any[]=[1,'a',true] console.log(age)
6.2 申明类型
6.2.1 类型
type People={ //数据类型 age:number, name:string } let p:People={age:20,name:"李四"} //数据,对象 console.log(p) console.log(p.name) console.log(p.age)
6.2.2 接口
interface People { //数据类型 age:number, name:string } let p:People={age:20,name:"李四"} //数据,对象 console.log(p)
绝大部分情况下,接口和类型,可以互换使用,接口更加灵活
6.3 申明函数
6.3.1 普通函数
function add(a: number,b: number):number{ let c = a + b return c } console.log(add(1,2))
6.3.2 匿名函数
let id_list: number[]=[1,2,3,4,5] id_list.forEach(function (id:number){ console.log(id * id) }) //需要一个函数,在迭代数组成员时回调
优化
let id_list: number[]=[1,2,3,4,5] id_list.forEach((id:number)=>{console.log(id * id)}) //需要一个函数,在迭代数组成员时回调 id_list.forEach((id:number)=>console.log(id * id))
()=>1
6.4 申明类
1 class People{ 2 age:number=0 3 name:string="无名氏" 4 5 //构造函数 6 constructor(age:number,name:string){ 7 this.age=age //修改对象的属性 8 this.name=name 9 } 10 } 11 12 let p=new People(18,"") 13 p.age=18 14 p.name="张三" 15 16 console.log(p) 17 console.log(p.name) 18 console.log(p.age) 19 console.log(typeof p)
改变变量位置
class People{ age:number=0 name:string="无名氏" //构造函数 constructor({age,name}:{age:number,name:string}){ this.age=age //修改对象的属性 this.name=name } } let p=new People({name:"张三",age:18}) //变量位置可以改版 p.age=18 p.name="张三" console.log(p) console.log(p.name) console.log(p.age) console.log(typeof p)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?