打字稿方法TS2322错误

时间:2017-09-14 12:13:52

标签: typescript

我能够创建一个Typescript类对象,但每次我在类上创建任何方法时它都会中断。

export class VacationServerResults {

 vacationOffers: Array<VacationHotelTicketDateOffersModel>;


constructor() {
    this.vacationOffers = new Array<VacationHotelTicketDateOffersModel>();

}

public greet() {
    return "hello";
}   

}

每次我添加greet方法时,都会出现以下错误。

  

文件:   '文件:   严重性:'错误'消息:'Type'{“vacationOffers”:{   “vacationOffer”:{“offerType”:string; “hotelRoomBasePrice”:数字;   “hote ...”不能分配给'VacationServerResults'类型   类型'{“vacationOffers”中缺少属性'greet':{   “vacationOffer”:{“offerType”:string; “hotelRoomBasePrice”:数字;   “份饭......‘’在:'36,5'来源:'ts'

1 个答案:

答案 0 :(得分:1)

您可能在代码中有另一个位置,您可以将对象文字指定给类型为>>> import re >>> x = 'Wish she could have told me herself. @NicoleScherzy #nicolescherzinger #OneLove #myfav #MyQueen :heavy_black_heart::heavy_black_heart: some string too :smiling_face:' >>> print(set(re.findall(r':[^:]+:', x))) {':smiling_face:', ':heavy_black_heart:'} >>> 的对象。 Typescript使用结构兼容性来确定类型兼容性,因此以下代码有效:

VacationServerResults

添加方法后,对象文字将不再满足类的结构,我们会收到您的错误。您可以执行以下操作之一:

在对象文字中分配方法(一个相当黑客的解决方案)

class Dog {
  name: string;
}

var d: Dog = {name : "My dog"};

为您的类创建一个构造函数,该构造函数接受对象文字并新建对象而不是使用对象文字:

class Dog {
  name: string;
  bark(): void{}
}

var d: Dog = {name : "My dog", bark: Dog.prototype.bark };