私は既存のインターフェイスを拡張するためにカスタムタイプ定義を持っています(Request
はhereと表示されています)。内容はexpress.d.ts
:Typescriptのカスタムタイプ定義がインポートクラスで破損する
declare namespace Express {
export interface Request {
name: string
}
}
細かく動作します。しかし、文字列であるname
の代わりに、カスタムクラスMyClass
にする必要があります。私はインターフェイスの増強を変更
export class MyClass {
first: string;
last: string;
}
::のようなクラス定義が見え
import { MyClass } from "../routes/myClass";
declare namespace Express {
export interface Request {
name: MyClass
}
}
req.name
にアクセスしたときに今、私は次のエラーを取得する:
error TS2339: Property 'name' does not exist on type 'Request'.
私が見つけました、私のexpress.d.ts
は、追加されたimport
ステートメントのために効果的に "モジュール"になります。それでも、私の問題をどのように乗り越えることができるかはわかりません。
あなたはトップレベルのインポート/エクスポート文を持っている場合は、ファイルはモジュールのファイルであり、あなたもうグローバル名空間Expressを拡張していない – unional