Импортированный класс не может использоваться как сервис в Angular.js с TypeScript - PullRequest
0 голосов
/ 01 октября 2018

Я конвертирую проект ES6 в TypeScript и столкнулся с проблемой при использовании @typed/angular с вызовом .service в Angular.js.

Если я сделаю это:

import * as angular from 'angular';
class OrderTreeService {}

export const orderTree = angular
    .module('orderTree', [])
    .service('OrderTreeService', OrderTreeService)
    .name;

Работает отлично.Однако, если я переместу этот сервис в файл order-service.service.ts и сделаю следующее:

import * as angular from 'angular';
import { OrderTreeService } from './order-tree.service';

export const orderTree = angular
    .module('orderTree', [])
    .service('OrderTreeService', OrderTreeService)
    .name;

Тогда он больше не работает и выдает такую ​​ошибку:

TS2345: Argument of type 'typeof OrderTreeService' is not assignable to parameter of type 'Injectable<Function>'.
  Type 'typeof OrderTreeService' is not assignable to type '(string | Function)[]'.
    Property 'pop' is missing in type 'typeof OrderTreeService'.

Я не могу понятькакая разница?Потеряна ли какая-то информация о типах где-нибудь по пути?

Это содержимое order-service.service.ts:

export class OrderTreeService {}

1 Ответ

0 голосов
/ 01 октября 2018

Не совсем уверен, но при перемещении OrderTreeService в один файл вы экспортировали сервис OrderTreeService из order-tree.service.ts?

order-tree.service.ts

export class OrderTreeService {}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...