声明在服务TypeScript文件中声明的相同类型的数组?

时间:2017-12-27 06:43:13

标签: angular typescript

我在打字稿服务文件中有一个数组。如何在我的服务类中的数组类型的组件类中声明一个数组。 这是我在服务打字稿文件中的数组声明。

export class ChannelsService {
 channels= [
    {
      pickCode: '780',
      cbsCode: 'AE',
      channel: 'A&E',
      logo: '/assets/A&E.png',
      compChannel: {
        compChannelCbsCode: '',
        compChannelName: '',
        compChannelLogo: ''
      }
    },
    {
      pickCode: '911',
      cbsCode: 'ABCSPK',
      channel: 'ABC Spark',
      logo: '/assets/ABC Spark.jpg',
      compChannel: {
        compChannelCbsCode: '',
        compChannelName: '',
        compChannelLogo: ''
      }
    },

我希望在我的组件类的服务typescript文件中声明一个相同channels数组的数组。 这是我现在这样做的方式,它不起作用

import { ChannelsService } from './channels.service';
export class AppComponent implements OnInit {
  draggedChannel: Array<this.channelsService.channels>[];
  constructor(private pickGroupService: PickGroupService, private channelsService: ChannelsService) {}

2 个答案:

答案 0 :(得分:1)

无效的

No ,您可以按如下方式创建新的类/接口并使用该类型

我在这里使用了 json2ts ,您可以根据需要进行更改,

export interface CompChannel {
        compChannelCbsCode: string;
        compChannelName: string;
        compChannelLogo: string;
    }

    export interface RootObject {
        pickCode: string;
        cbsCode: string;
        channel: string;
        logo: string;
        compChannel: CompChannel;
    }

答案 1 :(得分:0)

虽然声明一个接口在数组声明中使用它是更好的方法,但你可以得到这样的数组类型:

// Just a dummy var so we can access instance properties
declare var _dummy : ChannelsService; 
// we use typeof to get the type of the array.
type ArrayType = typeof _dummy.channels;
let array : ArrayType; // Use the array type like any other