学习typeScript第二天希望一起加油。笔记放出,希望对大家有所帮助
//1.函数的定义
//es5 定义函数的方法
/*
//函数声明法 //以前这么定义
function run() {
return '123';
}
//匿名函数
var run2 = function() {
return '456';
}
*/
// ts中定义函数的方法
/*
//函数声明法
function run():string{
return '123';
}
//错误写法
function run1():string{
return 123;
}
//匿名函数法
var run2 = function():number{
return 123;
}
run2();
*/
//ts 中定义方法传参
/*
//函数声明法
//相当于定义一个方法 参数name 是string age 是number 返回值是 string
function getInfo(name:string,age:number):string{
return `${name}--${age}`;
}
alert(getInfo('张三',12));
// 匿名函数法
var getInfo = function(name:string,age:number):string{
return `${name}--${age}`;
}
alert(getInfo('张三',12));
//没有返回值的方法
function run():void{
console.log('12321');
}
*/
//2.方法可选参数
/*
//es5中方法的实参和行参可以不一样 但是ts必须一样,如果不一样就需要配置可选参数
function getInfo(name:string,age?:number):string{
if(name){
return `${name}--${age}`;
}else{
return `${name}---保密`;
}
}
alert(getInfo('张三',123));
//如果age后面加个? 参数就可传可不传 比如
alert(getInfo('张三'));
//可选参数必须配置到参数的最后面 错误写法
function getInfo(name?:string,age:number):string{
if(name){
return `${name}--${age}`;
}else{
return `${name}---保密`;
}
}
alert(getInfo('张三',123));
alert(getInfo(123));
*/
//3.默认参数 调用一个方法的时候可以给他一个默认值
/*
//es5里面设置默认参数,es6和ts中也可以设置默认参数
function getInfo(name:string,age:number=20){
if(name){
return `${name}--${age}`;
}else{
return `${name}---保密`;
}
}
// age如果不传参的话默认是20
alert(getInfo('张三'));
*/
// 4.剩余参数
/*
//三点运算符接受新参传过来的值
function sum(...resule:number[]):number{
var sum = 0;
for(var i =0;i<resule.length;i++){
sum+=resule[i];
}
return sum;
}
alert(sum(1,2,3,4,5,5,5,5,5,5));
//如果前面a和b就相当于调用的时候 a就是1,b就是2
function sum(a:number,b:number,...resule:number[]):number{
var sum = a+b;
for(var i =0;i<resule.length;i++){
sum+=resule[i];
}
return sum;
}
alert(sum(1,2,3,4,5,5,5,5,5,5));
*/
//5.函数重载
// java中的方法重载,重载指的是两个活着两个以上的同名函数,他们的参数不一样,这是会出现函数重载的情况
// typeScript中的重载,通过为同一个函数提供多个函数类型定义来试下多种功能的目的
// ts为了兼容es5以及es6重载的写法和java中就有区别
//相当于同名的函数 传入不同的参数 执行处不同的结果
/*
//es5中出现同名方法,下面的方法会覆盖上吗的方法比如
function css(config){
}
function css(config,value){
}
*/
// ts中的重载
/*
function getInfo(name:string):string;
function getInfo(age:number):string;
function getInfo(str:any):any{
if(typeof str === "string"){
console.log(name)
}else{
console.log(age)
}
}
alert(getInfo('zhangsan'));
// 同样的方法 传入参数不一样
function getInfo(name:string):string;
function getInfo(name:string,age:number):string;
function getInfo(name:any,age?:any):any{
if(age){
console.log(name)
}else{
console.log(age)
}
}
alert(getInfo('zhangsan'));//正确
alert(getInfo(123)) //错误
*/
//箭头函数
// es5
setTimeout(function(){
},1000)
//箭头函数
setTimeout(() => {
}, 1000);