Я рассматриваю возможность добавления аннотаций типа TypeScript к существующему проекту. У меня возникли проблемы обеспечения внешнего файла декларации на очень простом примере:Как предоставить аннотацию TypeScript существующей глобальной функции
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 ожидал, что это сработает, но я получаю следующую ошибку:
program.ts(3,10): error TS2384: Overload signatures must all be ambient or non-ambient.
Кажется, что определение функции является перегрузкой, а не реализацией предыдущей декларации.
Каков правильный способ добавить тип к функции greet
?
Требование:program.ts
должно быть простым JavaScript, например, без аннотаций любого типа.
Описание 'program.js' без изменения расширения на' .ts' действительно звучит как правильная вещь, потому что я пытаюсь расширить существующую базу кода. Слишком плохо, тогда нет полной безопасности. В любом случае, отличный ответ! – btx9000