[解決済み] 'タイプ 'never'にプロパティが存在しません。
質問
と似ています。 #40796374 が、これは型に関するもので、私はインターフェースを使っています。
以下のようなコードがあるとします。
interface Foo {
name: string;
}
function go() {
let instance: Foo | null = null;
let mutator = () => {
instance = {
name: 'string'
};
};
mutator();
if (instance == null) {
console.log('Instance is null or undefined');
} else {
console.log(instance.name);
}
}
プロパティ 'name' がタイプ 'never' に存在しない」というエラーが発生しました。
インスタンスが'never'であることは理解できないのですが、どうすればよいのでしょうか? どなたか教えていただけませんか?
どのように解決するのですか?
を割り当てているため
instance
を
null
. コンパイラは、それが以下のものであることはないと推論します。
null
. そのため、else ブロックは決して実行されないと仮定して、次のようになります。
instance
として型付けされます。
never
をelseブロックの中に入れてください。
ここで、リテラル値として宣言しない場合
null
で取得し、他の手段で取得する(例.
let instance: Foo | null = getFoo();
) の場合、次のように表示されます。
instance
になります。
null
はifブロックの中にあり
Foo
をelseブロックの中に入れてください。
ドキュメントは絶対に打たないでください。 https://www.typescriptlang.org/docs/handbook/basic-types.html#never
編集する
更新された例の問題は、実はコンパイラの未解決問題なのです。 ご覧ください。
https://github.com/Microsoft/TypeScript/issues/11498 https://github.com/Microsoft/TypeScript/issues/12176
関連
-
[解決済み】プロパティ 'value' が 'HTMLElement' 型の値に存在しない。
-
[解決済み] プロパティ 'json' はタイプ 'Object' に存在しません。
-
[解決済み] TypeScriptの円形型参照
-
[解決済み] ngModel' は 'input' の既知のプロパティではないため、バインドできません。
-
[解決済み] formGroup' は 'form' の既知のプロパティではないため、バインドできません。
-
[解決済み] TypeScript で `window` に新しいプロパティを明示的に設定するにはどうすればよいですか?
-
[解決済み】TypeScriptの "not assignable to parameter of type never "エラーとは?
-
[解決済み】Ignore Typescript Errors "property does not exist on value of type" (タイプの値にプロパティが存在しない)。
-
[解決済み】タイプ 'EventTarget' にプロパティ 'value' が存在しない。
-
[解決済み】TypeScriptのEventTarget型にプロパティ'value'が存在しない。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Typescriptで、! (エクスクラメーションマーク/バン)演算子でメンバを再参照するのは?
-
[解決済み] タイプスクリプトのコンパイルで「tsc コマンドが見つかりません。
-
[解決済み] ts1206 デコレーターはここでは無効です、Angular 2。
-
[解決済み] TSがモジュールを見つけ出せない
-
[解決済み] TypeScriptのsetTimeoutはどのような戻り値型を使用すればよいですか?
-
[解決済み] クラス定数を実装するには?
-
[解決済み] オプションのパラメータを省略しながら、他のオプションのパラメータを渡すには?
-
[解決済み】文字列の値を持つenumの作成
-
[解決済み】タイプからプロパティを除外する
-
[解決済み】タイプライター。TS7006: パラメータ 'xxx' は暗黙のうちに 'any' 型を持つ。