安装node,省略
npm i -g typescript
typescript就是解析TS的工具包,提供tsc命令,实现了TS->JS转化
创建文件hello.ts,内容console.log("hello ts!")
通过tsc转化ts为js用node执行
C:\Users\Administrator\Desktop\typescript>tsc hello.ts
C:\Users\Administrator\Desktop\typescript>node hello.js
hello ts!
C:\Users\Administrator\Desktop\typescript>-
安装ts-node后用ts-node直接运行ts文件
C:\Users\Administrator\Desktop\typescript>npm i -g ts-node
C:\Users\Administrator\Desktop\typescript>ts-node hello.ts
hello ts!
tsc --watch index.ts 监视模式,监视index.ts文件变动,并实时生成index.js
vscode单行注释/取消注释 ctrl+/ vscode多行注释/取消多行注释 shift+alt+a
声明: let age: number ; let关键字用于声明变量,age是变量名称,number是变量age的类型
赋值 age=18
打印 console.log(age)
声明并初始化
let age: number = 18;
:number 类型注解
变量名称只能出现:数字、字母、下划线_、美元字符$,不能以数字开头;变量名区分大小写;推荐驼峰写法--首字母小写,后面每个单词首字母大写。
let $name let first_name let cityNanme let yourAge
TypeScript中的数据类型分为两大类:1原始类型(基本数据类型),2对象类型(复杂数据类型)
1原始类型(基本数据类型),字面量,从字面上看出他是什么 number string boolean undefined null let age: number =18 let score: number = 99.5 let isStudying: boolean = true let u: undefined = undefined (声明未赋值的变量) let n: null = null (声明赋值null的变量) 2对象类型(复杂数据类型)
算术运算符 + - * / (+还可以做字符串拼接) 赋值运算符 = += -= *= /= 自增运算符 ++ (+=1) -- (-=1) 比较运算符 > < >= <= !== === 逻辑运算符 与 && 或 || 非 !true
if (判断条件){
} else {
}
三元运算符 结果 = 判断条件 ? 值1: 值2 let result: number = 1 > 2 ? 1 : 2
循环语句
for (初始化语句;判断条件;计数器更新){
} for (let i:number=1; i<=3; i++){ console.log(i) }
break 终止循环 continue 跳过本次循环继续下次循环
语法一 创建字符串数组 let names: string[] = ['鼓励', 'aa'] 语法二 let names: string[] = new Array()
数组长度 length属性获取数组长度 names.length
数组索引(下标),从0开始
names[0]
数组取值 names[1]
数组存值 names[1] = '华仔'
添加元素 ,索引不存在存值时,添加元素 names[names.length]='大王'
声明函数,参数有多个用,分隔;实参与形参按照传入顺序一一对应 function 函数名(参数){ 函数体 }
调用函数 函数名()
函数返回值,在函数体通过return返回 声明时指定返回值类型:string ;函数如果没有返回值默认返回类型是void,可省略不写
function fn():string { return 返回值 }
{ name: 'jj', height: 175, sing: function(){ console.log('') } }
创建空对象 let person = {}
let person = { 键1=值1, key2=value2, 方法名: function (){ } }
函数用作方法时可省略function后面的函数名称,也叫做匿名函数,通过方法名调用函数。
let person: { name: string; age: number; } person = { name: '老刘', age: 18 }
对象方法的类型注解
let p1:{ sayHi:() => void }
p1 = { sayHi: function(){ console.log('nice!') } }
接口:为对象的类型注解命名,并约束对象的接口
创建接口interface关键字(约定接口以I开头)
interface IUser { name: string age: number }
使用接口 let p1: IUser = { name: 'jack', age:18 }
属性访问通过 对象名.属性名
属性设置: 对象名.属性名= 属性值
调用对象方法 对象名.方法名()
对象来源 1自己创建 2 其他人创建(编程语言自带或者第三方包携带)
内置对象: TS自带的基础对象(例如数学、日期)
length push 将一个或者多个元素添加到数组末尾,返回数组的新长度 forEach 遍历数组 some
数组名.forEach(function(item,index) { console.log('索引为',index,'元素为',item) })
注意: forEach方法的参数是一个函数,这种函数也称为回调函数(回调函数也是匿名函数)。 forEach方法的执行过程:遍历整个数组,为每一个元素调用一次回调函数
some方法,达到条件时停止循环(比forEach性能好一点,不用全部遍历一遍数组)(回调函数返回true,some停止循环)
let has: boolean = nums.some(function (num){ if (num>10){ return true } return false })
类型推论:类型注解可以省略 发生类型推论场景:1 声明变量并初始化 2决定函数返回值 //根据=右边的值推论age的类型 let age = 18 function sum(n:number,m:number) { return n+m }