既存のプロジェクトに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である必要があります。
拡張子 '.ts 'を変更せずに' program.js'を記述することは、既存のコードベースを拡張しようとしていることを考えると正しいことです。あまりにも完全な型の安全性が悪いです。とにかく、素晴らしい答え! – btx9000