angular - Hur man fixar `Argument of type number is not assignable to string`?


Ny på Angular 2 och TypeScript. Försöker testa några pipes. Jag får alltid detta fel i mina tester:

FEL i [standard] .../inflection.pipe.spec.ts:22:47 Argument av typen 'number' kan inte tilldelas parametern av typen 'string[]'.

Har du någon aning om vad jag gör fel?

//pipe.ts

import { .... }

    @Pipe({name: 'inflection'})
    export class InflectionPipe implements PipeTransform {
    transform(value: string, args: string[]): any {
        console.log(args);
        return inflection.inflect(value, args)

  }
}

//spec.ts
import {....}

describe('InflectionPipe', () => {
    // provide our implementations or mocks to the dependency injector
    beforeEach(() => TestBed.configureTestingModule({
        providers: [
            InflectionPipe
        ]
    }));

    it('should inflect different values', inject([InflectionPipe], (inflectionPipe: InflectionPipe) => {

        expect(inflectionPipe.transform('goose', 2)).toEqual('geese');

    }));


});

Svar #1

Titta på din transform-signatur

transform(value: string, args: string[])

och titta hur du försöker kalla det

inflectionPipe.transform('goose', 2)

Det förväntar sig en string[] men du skickar ett nummer. Jag är osäker på vad du försöker göra, men du bör rätta det därefter. Kanske transform('goose', ['2'])