1.

接口中我们可以将数组的索引值和元素设置为不同类型,索引值可以是数字或字符串。

 
 interface namelist { 
    [index:string]:string 
 } 
  
 var list2:namelist = {"a":"John","b":'1',"c":"Bran"}// 错误元素 1 不是 string 类型
 interface ages { 
    [index:string]:number 
 } 
  
 var agelist:ages = {"a":1,"b":2,"c":3}; 
// //  agelist["2"] = 12   // 错误
//  agelist["John"] = 15   // 报错

 2.

 //实现接口,属性可以不实现,不会报错。方法必须实现,否则报错。

 

interface ILoan { 
    interest:number 
    func:()=>void;
 } 
  
 class AgriLoan implements ILoan { 
    interest:number 
    rebate:number 

    func(){
    }

    constructor(interest:number,rebate:number) { 
    //    this.interest = interest 
       this.rebate = rebate 
    } 
 } 
  
 var obj = new AgriLoan(10,1) 
 console.log("利润为 : "+obj.interest+",抽成为 : "+obj.rebate )
 //实现接口,属性可以不实现,不会报错。方法必须实现,否则报错。

利润为 : undefined,抽成为 : 1