Javascript 如何使用Typescript在Ember应用程序中注入服务

Javascript 如何使用Typescript在Ember应用程序中注入服务,javascript,typescript,ember.js,Javascript,Typescript,Ember.js,我遵循以下指南: 这里我有一个服务,它只有一个功能findAllContacts: 导出默认类ContactPicker扩展服务{ findAllContacts():承诺{ 返回Promise.resolve(getContact()); } } 声明模块“@ember/service”{ 接口注册表{ “触点选择器”:触点选择器; } } 和电话簿组件: 从“@ember/Component”导入组件; 导入计算自“@ember/object/Computed”; 从“../servic

我遵循以下指南:

这里我有一个服务,它只有一个功能findAllContacts:

导出默认类ContactPicker扩展服务{
findAllContacts():承诺{
返回Promise.resolve(getContact());
}
}
声明模块“@ember/service”{
接口注册表{
“触点选择器”:触点选择器;
}
}
和电话簿组件:

从“@ember/Component”导入组件;
导入计算自“@ember/object/Computed”;
从“../services/contact picker”导入ContactPicker;
从'@ember/service'导入{injectasservice};
导出默认类PhonebookView扩展组件{
contactPicker:Computed=服务('contact-picker');
didInsertElement(){
let contacts=this.contactPicker.findAllContacts();//错误
}
};
但是我在调用这个时遇到了typescript错误。contactPicker.findAllContacts(): 类型“ComputedProperty”上不存在属性“findAllContacts”。ts(2339)

如何使用Typescript注入服务?

尝试:

import Component from '@ember/component';
import ContactPicker from '../services/contact-picker';
import { inject as service } from '@ember/service';

export default class PhonebookView extends Component {
  @service declare contactPicker: ContactPicker;

  didInsertElement() {
    let contacts = this.contactPicker.findAllContacts(); //error
  }
};


您是否尝试过
contactPicker:contactPicker=service('contact-picker')?类型“ComputedProperty”缺少类型“ContactPicker”中的以下属性:findAllContacts、get、getProperties、set等。