ts中的数据类型:
1.js有的类型
boolean类型、number类型、string类型、array类型、undefined、null、symbol (7种)
2.ts多出的类型
tuple类型(元组类型)、enum类型(枚举类型)、any类型(任意类型)
3.特别的类型
void类型:(没有任何类型)表示定义方法没有返回值
never类型:是其他类型(包括null和undefined)的子类型,代表从不会出现的值
(这意味着声明never变量只能被never类型所赋值)
定义的方法:
// 第一种定义array类型方法
var arr1:number[] = [1,2,3]
// 第二种定义array类型方法
var arr2:Array<number> = [11,22,33]
// 定义元组类型的方法 (元组(tuple)是关系数据库中的基本概念,关系是一张表,表中的每行(即数据库中的每条记录)就是一个元组,每列就是一个属性。 在二维表里,元组也称为行。)
let arr3:[number,string] = [111,'111']
// 定义enum枚举类型方法(在程序中用自然语言和计算机状态联系起来,方便理解)
enum name {name1, name2, name3, ...}
enum Flag {success=1,error=2}
let s:Flag = Flag.success
console.log(s)
enum Color {red,blue,orange}
let num:Color = Color.red
console.log(num)
// 定义any任意类型方法
var num1:any = 123
num1 = true
var obox:any = document.getElementById('box')
obox.style.color = 'red'
// undefined类型
var num2:number | undefined
console.log(num2)
// void类型,函数没有返回值
function run():void{
console.log('run')
}
function run1():number{
return 123
}
// never类型定义方法
var a:undefined
a = undefined
var b:null
b = null
// var c:never
// c = (()=>{
// throw new Error('错误')
// })()
函数的定义:
// es5函数声明
function run3(){
return 'run'
}
// es5匿名函数
var run4 = function(){
return 'run'
}
// ts函数声明 冒号后为定义返回值
function run5():string{
return 'run'
}
// ts匿名函数
var run6 = function():number{
return 123
}
// ts中定义方法传参
function getInfo(name:string,age:number):string{
return 'info'+`$(name)---$(age)`
}
var getInfo1 = function(name:string,age:number):string{
return 'info'+`$(name)---$(age)`
}
// 没有返回值的方法
function getInfo2():void{
console.log(123)
}
方法可选参数:
在参数后面加?变为可选参数,可选参数必须配置到参数的最后面
function getInfo3(name : string, age? : number= 20) : string {
if (age) {
return 'info'+`$(name)---$(age)`
} else {
return 'info'+`$(name)---年龄保密`
}
}
剩余参数:
使用...result:number[]来代替剩余参数并定义类型。
function sum(a:number,b:number,c:number):number{
return a+b+c
}
sum(1,2,3)
// 三点运算符接收传过来的值
function sum1(...result:number[]):number{
var sum = 0
for(var i=0;i<result.length;i++){
sum += result[i]
}
return sum
}
sum1(1,2,3)
function sum2(a:number,...result:number[]):number{
var sum = 0
for(var i=0;i<result.length;i++){
sum += result[i]
}
return a + sum
}
sum1(1,2,3)
函数重载:
java重载是指两个或两个以上同名函数,但是函数参数不同,这时候会出现函数重载的情况
ts重载是指通过一个函数提供多个函数定义来试下多种功能的目的
方法重载可以和函数选择传参一起用
function getInfo5(name:string):string
function getInfo5(age:number):number
function getInfo5(str:any):any{
if(typeof str == 'string'){
return str
}else{
return str
}
}
alert(getInfo5(123))
ts里的类
类里面的修饰符,ts三种:public(公类、子类、类外面) protected(类外面不能访问) private(子类、类外面不能访问)
参考链接: https://blog.csdn.net/qq_42451979/java/article/details/89642575