tsc hello.ts
node hello.js
ts转为js,才可以在node中执行
第二种方式运行
安装命令:npm i -g ts-node
使用方式: ts-node hello.ts
ts-node 文件名
使用 boolean 定义布尔值类型:let isDone: boolean = false;ts
// 单行注释
ctrl+/
多行注释/**/ shift+alt+a
ts 是js的超集,为js 添加类型系统.相比js,开发体验更友好,提前发现错误,Bug
更少,增加开发的幸福度
声明变量的并指定类型
let age: number;
给变量赋值
age=18
变量是可以变化的
age=19
变量的初始化
声明变量的同时就赋值
let age:number=20
ts的类型要注意
变量的名称:数字 字母 下划线 美元符号($),并且不能以数字开头
let 2b 错
let $name 对
let first_name 对
let @email 错
变量的名称是区分大小写的
let a:number=18错的无意义,不推荐使用
变量名称要有意义
变量名称驼峰命名法
let cityName
let yourAge
变量的交换
let num1:number = 33
let num2:number = 2
let temp: number
temp=num1
num1=num2
num2=temp
num1 // 2
num2 // 33
数据类型
ts数据类型
原始类型(基本数据类型)
常用的数据类型有5个
number string boolean undefined null
2对象类型(复杂数据类型)
数字类型
let size:number = 18
// 小数
let score:number=99.9 可以为正负
let age:number=+‘1’
+’'加后是跟数字类型
字符串类型
let food:string = ‘吃东西’
console.log(‘hello ts’)
布尔类型的类型注释:boolean 真或假
let isString:boolean=true
let isPlayingGame:boolean=false
undefined null
undefiend类型的值:undefined
// 声明没有赋值
let u:undefined = undefined
或
let u1:undefined
console.log(u1)
null类型的值为null
let n:null = null
null:表示声明了变量并已赋值,值为null(能找到,值就是null)
加号的其它的作用
console.log(‘加’+‘油’);
console.log(‘2’-1) 报错
console.log(2-1) 1
console.log(2-+‘1’) 1
let age:number=+‘1’
赋值运算符
let age:number=18
age=age+1 // 进行赋值 或age+=1
console.log(age) // 19
+= *= -= /=
自增和自减 只能让变量的值增加或者减少1 不能加2或加3
let age:number=18
age++
console.log(age) // 19
=== !==
逻辑运算符
&&两个同时为满足
|| 只要一个为true就是true
! 取
else
在ts中else 语句必须结合if语句来使用
三元运算符
let result:string=5>3?‘大于’: ‘小于’
let age:number=18
或者
age<18?‘回家看熊’:‘2’
if(age<18){
console.log(‘回家看熊’);
}else{
console.log(‘2’)
}
for循环
for(let i:number=1; i<=3;i++){
console.log(‘加油啊’)
}
breack
for(let i:number=1; i<=3;i++){
if(i===3){
break
}
console.log(i)
}
continue
for(let i:number=1; i<=3;i++){
if(i===3){
continue // 调过本次循环,进行下次循环
}
console.log(i)
}
第一种:创建数组
let names:string[]=[] // 创建空数组
类型+[]
数组存储多个数据
let names:string[]=[‘2’, ‘3’, ‘4’] 规定了是string的类型
第二种:创建数组
let names:string[]=new Array(‘2’, ‘3’, ‘4’)
let names:string[]=new Array()
数组的长度和索引
let foods:string[]=[‘we’,‘me’,‘jiayou’]
console.log(foods.length)
console.log(foods[0])
foods[1]=‘mes’
foods[3]=’!’
索引(下标)
数组索引是从0 开始的
let nums:number[]=[20,10,30,70,80]
let sum:number=0
for(let i:number=10,i<nums.length;i++){
sum+=nums[i]
}
函数
function sing(songName:string){
console.log(‘2’)
}
sing(‘类型为字符串类型’)
多个参数
function sing(songName:string,age:number){
console.log(‘2’)
}
sing(‘类型为字符串类型’,19)
函数和数组一起使用
注意:如果没有指定函数的返回值,那么,函数返回值的默认类为void(空,什么都没有)
// function getsum(nums:number[]):返回值的类型
function getsum(nums:number[]):number{
let sum:number=0
for(let i:number=0;i<nums.length;i++){
sum+=nums[i]
}
console.log(sum)
return sum
}
let result:number=getSum([1,3,5])+getSum([2,4,6])
console.log(result)
基本使用
1.指定返回值类型 2.指定返回值
1.指定返回值类型
function fn():类型注释{
}
在声明函数的括号后面,通过:类型注解指定
function fn():number{
return 返回值
}
// 注意:返回值必须符合返回值类型的类型要求,否则会报错
function fn():number {
return 18
}
let result:number = fn()
console.log(result/10)
console.log(result/2)
函数的作用域
function fn(){
let num:number=1
console.log(num)
}
fn()
console.log(num) // 函数外部不可以使用
创建对象
let person={
name:‘小迷’
age: 19,
sayhi:function(){
console.log(‘我是一个方法’)
}
}
对象的类型注解
对象类型的约束
// 此处类型的注释
let person:{
name: string,
age: number
}
// ts的对象
person={
name: ‘刘老师’
age: 18
}
对象的方法类型注解
let person: {
sayHi:()=>void
sing:(name:string)=>void
sum:(num1:number,num2:number)=>number
}
// —
let p1:{
sayHi:()=>void
}
p1={
sayHi:funcion(name){ // 报错
console.log(‘不错哦’)
}
}
let p2:{
sing:(name:string)=>void
}
p2={
sing:function(name:string){
console.log(‘歌曲名’+name)
}
}
let p3:{
sum:(num1:number,num2:number)=>number
}
p3={
sum:function (num1:number,num2:number){
return num1+num2
}
}
或者
let p2:{
name:string
age:number
sayHi:()=>void
}={
name:‘rose’,
age:17,
sayHi:function(){
console.log(‘晚点不要急’)
}
}
接口 interface 接口是I开头
interface IUser{
name:string
age:number
sayHi:()=>void
}
let p1:IUser={
name:‘jack’,
age: 18
sayHi:function(){
console.log(‘晚点不要急’)
}
}
let p2:IUser={
name:‘jack’,
age: 18
sayHi:function(){
console.log(‘晚点的’)
}
}