質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

意見交換

2回答

316閲覧

TypeScriptのWideningについて

SHYA181

総合スコア6

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

0グッド

0クリップ

投稿2024/04/06 14:39

編集2024/04/06 14:51

Wideningについて調べています。
記事を漁っていて、これはWideningと理解できました。

TypeScript

1// "hoge"というリテラル型で推論される 2const hoge = "hoge"; 3// stringに推論される 4let fuga = hoge;

以下の①や②のような通常の型推論、③のようにプロパティに設定すると変更できてしまう場合もWideningと言えるのでしょうか?

TypeScript

1// ①stringに推論される 2let hoge = "hoge"; 3 4// ②numberに推論される 5let fuga = 1234; 6 7// ③オブジェクトのプロパティに設定すると変更できてしまう 8const hoge = "hoge"; 9const obj = { 10 hoge, 11}; 12obj.hoge = "fuga";

あとその他、Wideningといえるようなものがあれば教えていただけると嬉しいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

回答2

#1

actorbug

総合スコア2224

投稿2024/04/06 22:17

teratailでは、マルチポスト(同じ内容の文章を複数のQ&Aサイトや掲示板などへ投稿すること)の推奨はしていません。(teratailのヘルプより)

https://qiita.com/affilimoney2/questions/6a5883d27042942b1339

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#2

退会済みユーザー

退会済みユーザー

総合スコア0

投稿2024/04/07 02:43

③のようにプロパティに設定すると変更できてしまう場合もWideningと言えるのでしょうか?

言えます。

あとその他、Wideningといえるようなものがあれば

あります。

参考「プロを目指す人ののためのTypescript入門」(@uhyo_さん著)の「第6章 高度な型」には以下のように2節割いてwideningの説明があります。

  • 6.2.4 リテラル型のwidening
  • 6.2.5 wideningされるリテラル型・wideningされないリテラル型

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

この意見交換はまだ受付中です。

会員登録して回答してみよう

アカウントをお持ちの方は

関連した質問