大家好!
我需要帮助。
我想用一个特定的结构来测试我的服务树。
我的测试看起来像:

describe(`Service selector`, () => {
  describe(`getCurrentServiceTree`, () => {
    it(`should build the generic service tree`, () => {
      const services = [
        '{http://namespace-example.fr/service/technique/version/1.0}Localpart0',
        '{http://namespace-example.fr/service/technique/version/1.0}Localpart1',
        '{http://namespace-example.fr/service/technique/version/2.0}Localpart2',
        '{http://namespace-example.fr/service/technique/version/3.0}Localpart3',
        '{http://namespace-example.fr/service/technique/version/3.0}Localpart4',
      ];

      const expectedTree: TreeElement<any>[] = [
        {
          name: 'http://namespace-example.fr/service/technique/version/1.0',
          children: [
            {
              name: 'Localpart0',
              children: [],
              isFolded: false,
              cssClass: 'item-localpart',
            },
            {
              name: 'Localpart1',
              children: [],
              isFolded: false,
              cssClass: 'item-localpart',
            },
          ],
          isFolded: false,
          cssClass: 'item-namespace',
        },
        {
          name: 'http://namespace-example.fr/service/technique/version/2.0',
          children: [
            {
              name: 'Localpart2',
              children: [],
              isFolded: false,
              cssClass: 'item-localpart',
            },
          ],
          isFolded: false,
          cssClass: 'item-namespace',
        },
        {
          name: 'http://namespace-example.fr/service/technique/version/3.0',
          children: [
            {
              name: 'Localpart3',
              children: [],
              isFolded: false,
              cssClass: 'item-localpart',
            },
            {
              name: 'Localpart4',
              children: [],
              isFolded: false,
              cssClass: 'item-localpart',
            },
          ],
          isFolded: false,
          cssClass: 'item-namespace',
        },
      ];

      const generatedStore: Partial<IStore> = {
        services: {
          byId: services.reduce(
            (acc, name, index) => ({ ...acc, [`service${index}`]: { name } }),
            {}
          ),
          allIds: services.map((_, index) => `service${index}`),
          isFetchingServices: false,
          selectedServiceId: '',
        },
      };

      expect(getCurrentServiceTree(generatedStore as any)).toEqual(
        expectedTree
      );
    });
  });
});

我不知道这是一个类型脚本问题还是与rxjs有关。或者只是我的代码:(
当我把鼠标放到getcurrentservicetree时,我得到了:
(别名)GetCurrentServiceTree(状态:istore):TreeElement[]
导入GetCurrentServiceTree
我不知道我是否正确使用了Partial<T>
我不能将generatedstore键入为..
当我把我的鼠标放在,我有:
[ts]l'argument de type'(=>任何'n'est pas可分配au
PraseTre de类型“istor”。最适合丹麦人的酒店
键入“()=>任意”。
export const getCurrentServiceTree = createSelector(
  getSelectedWorkspaceId,
  getServicesAllIds,
  getServicesById,
  (selectedWorkspaceId, servicesAllIds, servicesByIds): TreeElement<any>[] => {
    const baseUrl = `/workspaces/${selectedWorkspaceId}/services`;

    const servicesWithNspLocalpart = servicesAllIds.map(id => ({
      ...findNamespaceLocalpart(servicesByIds[id].name),
      id,
    }));

    const groupedByNamespace = groupByNamespace(servicesWithNspLocalpart);

    return groupedByNamespace.map(nspWithLocalparts => ({
      name: nspWithLocalparts.namespace,
      isFolded: false,
      cssClass: `item-namespace`,
      link: ``,
      children: nspWithLocalparts.localparts.map(localpart => ({
        name: localpart.name,
        isFolded: false,
        cssClass: `item-localpart`,
        link: `${baseUrl}/${localpart.id}`,
        children: [],
      })),
    }));
  }
);

我该怎么办?
有人能告诉我怎么解决我的问题吗?

最佳答案

我今天面对的是完全相同的错误。
一开始就不清楚错误是从哪里来的。
我所做的调试工作:
不要使用ng test(也可能是headless)来运行测试,不要使用headless模式,也要使用参数--no-sourcemaps来启动它们。
我在浏览器中有一条(稍微)好一点的消息,至少告诉我是哪个文件导致了这个问题
即使在那里,问题的确切位置也不明显,我发现ng test并没有报告循环deps,但是ng serve报告循环deps。
从那里可以很容易地找到导致循环依赖的函数,我只需要把它移到另一个文件中(这更合理)

关于typescript - 未捕获的TypeError:无法读取未定义的属性“release”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48154330/

10-09 22:23