[解決済み] String型とstring型の違いは何ですか?
2022-03-23 13:03:01
質問
との違いをご存知の方はいらっしゃいますか?
String
と
string
をTypeScriptで作成することはできますか?これらは同じものであるべきだと考えてよいのでしょうか?
var a: String = "test";
var b: string = "another test";
a = b;
b = a; // this gives a compiler error!
現在のコンパイラのバージョンは言う。
Type 'String' is not assignable to type 'string'.
'string' is a primitive, but 'String' is a wrapper object.
Prefer using 'string' when possible.
それはバグですか?
解決方法は?
ここでは、その違いを示す例を挙げ、説明の一助とします。
var s1 = new String("Avoid newing things where possible");
var s2 = "A string, in TypeScript of type 'string'";
var s3: string;
String
はJavaScriptのString型であり、これを
できる
を使用して新しい文字列を作成します。JavaScriptではリテラルが良いとされているため、誰もこれを行いません。
s2
を使用せずに新しい文字列を作成します。
new
キーワードを使用せず、かつ、明示的に
String
オブジェクトを作成します。
string
はTypeScriptの文字列型であり、変数やパラメータ、戻り値の型付けに使用できる。
その他の注意事項...
現在(2013年2月)のところ、両方
s1
と
s2
は有効なJavaScriptです。
s3
は有効なTypeScriptです。
の使用
String
. 文字列リテラルは、文字列を初期化するための正しい方法として普遍的に受け入れられているので、おそらく使う必要はないでしょう。JavaScript では、オブジェクト リテラルと配列リテラルを使用することも推奨されています。
var arr = []; // not var arr = new Array();
var obj = {}; // not var obj = new Object();
もし本当に文字列にこだわりがあるのなら、TypeScriptで2つの方法のどちらかで使うことができるだろう...。
var str: String = new String("Hello world"); // Uses the JavaScript String object
var str: string = String("Hello World"); // Uses the TypeScript string type
関連
-
[解決済み】Typescriptで、! (エクスクラメーションマーク/バン)演算子でメンバを再参照するのは?
-
[解決済み] 重複した識別子」という紛らわしいTypescriptエラーメッセージが発生する。
-
[解決済み] TypeScriptの円形型参照
-
[解決済み] TypeScriptでオブジェクトを初期化する方法
-
[解決済み] コンストラクタとngOnInitの違いについて
-
[解決済み] TypeScriptで文字列を数値に変換する方法とは?
-
[解決済み] TypeScriptのオブジェクトリテラルでの型定義
-
[解決済み] "require(x)" と "import x" の違いについて
-
[解決済み] TypeScriptのファイル変更時にts-nodeを監視して再読み込みする方法
-
[解決済み】ブロックに`@ts-ignore`を使用するには?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] error TS2339: Property 'x' does not exist on type 'Y'.
-
[解決済み] 重複した識別子」という紛らわしいTypescriptエラーメッセージが発生する。
-
ts 学習日記1 AssertionError [ERR_ASSERTION]: タスク関数を指定する必要があります
-
[解決済み] 'タイプ 'never'にプロパティが存在しません。
-
[解決済み] TypeScriptでパラメータとして強く型付けされた関数は可能か?
-
[解決済み] 'unknown' vs. 'any'
-
[解決済み] TypeScriptのクラス型チェック
-
[解決済み] Typescript Date Type?
-
[解決済み】TypescriptのArray<Type> VS Type[]について
-
[解決済み] Typescript で JSON 文字列をパースする方法