三点应用
剩余传参

核心就是传参最后是 三点 加 数组
传参和数组的类型 必须一致 的 (否则IDE报错)
function 函数名 ( 传参1 : 类型 , ...数组名 : 数组类型[] ){ }
简易示例
function sum1(num1:number,...numx:number[]){ // numx 是变量名 非固定
let sum_num : number = num1
for (let index = 0; index < numx.length; index++) { // 传统历遍
sum_num += numx[index]; // 历遍循环+
}
return sum_num // 返回和
}
function sum2(num1:number,...numx:number[]){
let sum_num = num1
for (const item of numx){ // for of 方式历遍 逻辑更简单
sum_num += item
}
return sum_num
}
console.log('求和 for ',sum1(1,2,3,4,5,6,7,8,9))
console.log('求和 for of ',sum2(1,2,3,4,5,6,7,8,9))
展开运算

简易示例
let num1 :number[] = [0,1,2,3,4]
const num2 : number[] = [5,6,7,5,1,3,9]
let sum1 : number[] = [...num1,...num2]
console.log('合并数组',sum1)
对象继承和限制
对象继承 extends
代码参考 对象限制
对象限制 implements
上节课学 class 修饰符是 限制输出
implements 限制类属性保有项
保证类里面至少有对象的所有属性项,可多不可少,项值也不一定一样
简易示例
interface dx1 { name : string } // 定义对象(接口)
interface dx2 extends dx1 { // 继承定义对象
age : number;
say : ()=>void // 创建的对象必须包含一个名为 say 的方法
}
class lei implements dx2 { // implements 限制的是类里面属性与对象之间的关系 并非传参
name : string
age : number
hp? : number
constructor(name1:string,age1:number) { // 这才是传参 不管多复杂 new类 就要与类的传参保持一致
this.name = name1
this.age = age1
}
say () {}
}
let dx_1 : dx2 = {name:'小明',age:12,say:()=>{console.log('')}} // 创建对象实例 与say方法没多大关系 语法不要出错就好
let npc1 : lei = new lei(dx_1.name,dx_1.age) // 实际传入的只有 name 和 age
934

被折叠的 条评论
为什么被折叠?



