我正在考虑将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;
我预计这工作,但我得到以下错误:
program.ts(3,10): error TS2384: Overload signatures must all be ambient or non-ambient.
它似乎认为函数定义是一个重载而不是以前的声明的实现。
将greet
函数添加到类型的正确方法是什么?
要求:program.ts
应该是普通的JavaScript,例如没有任何类型的注释。
描述'program.js'而不改变扩展名为'.ts'听起来像是正确的做法,因为我试图扩展现有的代码库。太糟糕了,那么就没有完整的安全性。无论如何,很好的答案! – btx9000