Ich überlege, TypeScript-Annotationen zu einem vorhandenen Projekt hinzuzufügen. Ich habe Probleme, eine externe Deklarationsdatei für ein sehr einfaches Beispiel bietet:Wie TypeScript-Annotation zu vorhandener globaler Funktion bereitgestellt wird
program.ts:
/// <reference path="types.d.ts"/>
function greet (p) {
console.log(p.name);
}
var x = {name: 'Mary'};
greet(x);
types.d.ts:
interface Person {
height?: number,
name: string
}
declare function greet (p: Person): void;
I erwartet, dass dies funktioniert, aber ich bekomme den folgenden Fehler:
program.ts(3,10): error TS2384: Overload signatures must all be ambient or non-ambient.
Es scheint zu denken, dass die Funktionsdefinition eine Überladung ist und nicht die Implementierung einer vorherigen Deklaration.
Was ist der richtige Weg, um der greet
Funktion einen Typ hinzuzufügen?
Anforderung: die program.ts
sollte einfaches JavaScript sein, z. B. frei von jeder Art von Anmerkungen.
Wenn ich 'program.js' beschreibe, ohne die Erweiterung auf' .ts' zu ändern, hört sich das nach der richtigen Vorgehensweise an, da ich versuche, eine vorhandene Codebasis zu erweitern. Schade, dass es keine volle Sicherheit gibt. Wie auch immer, tolle Antwort! – btx9000