Type Scriptエラーproperty does not exist on type Object
1251 ワード
Type Scriptエラーproperty does not exist on type Object
Type ScriptではJSで対象属性を取得すると、Property'value'does not exist on type'Object'のような形のエラーが発生することがあります.具体的なコードは以下の通りです.
1.オブジェクトタイプをanyに設定する
これは非常に効率的な解決法であり、任意の属性の変更にアクセスできます.コンパイルエラーは発生しません.具体的なコードは以下の通りです.
この方法は少しハックな感じがしますが、コンパイルミスの問題は解決できます.具体的なコードは以下の通りです.
煩わしいが、最も提唱された解決方法である.オブジェクトをインターフェースで宣言すると、属性値が一目瞭然です.具体的なコードは以下の通りです.
ステートメントが断言されると、コンパイラは断言の種類によって実行されます.具体的なコードは以下の通りです.
Type ScriptではJSで対象属性を取得すると、Property'value'does not exist on type'Object'のような形のエラーが発生することがあります.具体的なコードは以下の通りです.
var obj: Object = Object.create(null);
obj.value = "value";//[ts] Property 'length' does not exist on type'Object'.
これは、Typeescriptがコードチェックを実行する際に該当する属性を定義していないため、このエラーに遭遇した場合は以下のような解決方法があります.1.オブジェクトタイプをanyに設定する
これは非常に効率的な解決法であり、任意の属性の変更にアクセスできます.コンパイルエラーは発生しません.具体的なコードは以下の通りです.
var obj: any = Object.create(null);
obj.value = "value";
2.文字でオブジェクトの属性を取得するこの方法は少しハックな感じがしますが、コンパイルミスの問題は解決できます.具体的なコードは以下の通りです.
var obj: Object = Object.create(null);
obj["value"] = "value";
3.オブジェクトが持つ属性をインターフェースで定義する煩わしいが、最も提唱された解決方法である.オブジェクトをインターフェースで宣言すると、属性値が一目瞭然です.具体的なコードは以下の通りです.
var obj: ValueObject = Object.create(null);
obj.value = "value";
interface ValueObject {
value?: string
}
4.断言を使って強制執行ステートメントが断言されると、コンパイラは断言の種類によって実行されます.具体的なコードは以下の通りです.
var obj: Object = Object.create(null);
(obj as any).value = "value";
転載先:https://www.cnblogs.com/limbobark/p/10043769.html