おそらく質問は既に頼まれていましたが、何も見つかりませんでした。そしてそれはとても素朴なようです。 TypeScriptはオブジェクトのリテラル表記に適していますが、内部でメソッドを定義すると、this
というコンテキストがその関数内で正しく処理されないため、this
がany
型を受け取っているようです。したがって、自動補完はありません。TypeScriptのオブジェクトリテラル表記内の関数。なぜ `this`コンテキストの型が` any`ですか?
var foo = {
log(str) {
console.log(str);
},
print(str) {
this. /* No autocompletion */
}
};
foo. /* Normal autocompletion */
当然のことながら、私はオートコンプリート機能が正しく方法、foo
変数を消費したときにそれがないと同じように動作することを期待します。最初にクラスを宣言してオブジェクトをインスタンス化することはできますが、中間であるclass
またはinterface
を宣言せずに動作しない理由は、この単純なケースでは定型文のようですか?機能上の公式TypeScript Documentationによると
本当にありがとうございます。実際には、このクラスを宣言したほうがいいですし、すべてが1か所にあります。さもなければ、私たちにはたくさんの繰り返しコード、インターフェース定義、宣言があります。だから、それは私のために、オブジェクトのリテラル表記はまったく使えないということです。 – tenbits