官术网_书友最值得收藏!

Function type interfaces

We just saw how to define properties in interfaces. Similarly, we can also define function types in interfaces. We can define function types in interfaces by just giving the signature of the function with the return type. Note that, in the following code snippet, we have not added the function name:

interface AddCustomerFunc { 
  (firstName: string, lastName: string): string; 
} 

Now, we have AddCustomerFunc ready. Let's define an interface variable called AddCustomerFunc and assign a function of the same signature to it as follows:

var addCustomer: AddCustomerFunc; 
addCustomer = function(firstName: string, lastName: string) { 
  console.log('Full Name: ' + firstName + ' ' + lastName); 
  return firstName + ' ' + lastName; 
} 

The parameter name in the function signature can vary, but not the data type. For example, we can alter the fn and ln function parameters of the string type as follows:

addCustomer = function(fn: string, ln: string) { 
  console.log('Full Name: ' + fn + ' ' + ln); 
} 

So, if we change the data type of the parameter or the return type of the function here, the compiler will throw an error about the parameter not matching or the return type not matching with the AddCustomerFunc interface.

主站蜘蛛池模板: 洛浦县| 巧家县| 上思县| 武城县| 太仆寺旗| 马关县| 禹州市| 高要市| 德安县| 两当县| 什邡市| 泸州市| 漯河市| 开鲁县| 儋州市| 资中县| 建瓯市| 靖宇县| 永靖县| 信丰县| 区。| 长寿区| 龙门县| 屯门区| 绥化市| 连州市| 内丘县| 湘潭县| 迁西县| 吉水县| 纳雍县| 蒙城县| 吴川市| 莱州市| 瓮安县| 贺州市| 塔河县| 辰溪县| 敖汉旗| 南昌县| 云安县|