typescript - Feil TS2339: Egenskapen 'name' finnes ikke på typen 'Function'


Jeg har følgende funksjon:

export function output(functions: Function[], inputs: unknown[]) {
    for (let func of functions) {
        console.log(`=== ${func.name} ===`);
        for (let input of inputs) {
            console.log(`"${input}"\t-> ${func(input)}`);
        }
        console.log();
    }
}

Det fungerer fint. Men tsc-kompilatoren klager på denne linjen:

console.log(`=== ${func.name} ===`);

Sier :

Feil TS2339: Egenskapen 'name' finnes ikke på typen 'Function'.

Hva forårsaker problemet?

Svar #1

Jeg klarte å gjenskape dette problemet. Det ser ut til at lib.d.ts-filen som definerer grensesnittet for Function, ikke har "name" som en egenskap.

Se Typescript-problem 6623, som har en omgåelse.

Egenskapen name på grensesnittet Function er definert i lib.es6.d.ts. Hvis du kompilerer med --target ES6 bør du se det.

Relaterte artikler