String Prototypeを拡張し、Typescriptで使用するには?
2023-08-02 03:24:09
質問
Stringプロトタイプチェーンを新しいメソッドで拡張していますが、それを使おうとするとエラーが発生します。
property 'padZero' does not exist on type 'string'
. 誰かが私のためにこれを解決することができますか?
コードは以下の通りです。また、Typescript Playgroundでも同じエラーを見ることができます。
interface NumberConstructor {
padZero(length: number);
}
interface StringConstructor {
padZero(length: number): string;
}
String.padZero = (length: number) => {
var s = this;
while (s.length < length) {
s = '0' + s;
}
return s;
};
Number.padZero = function (length) {
return String(this).padZero(length);
}
どのように解決するのですか?
を補強したい場合は
class
ではなく
instance
ではなく、コンストラクタを拡張します。
declare global {
interface StringConstructor {
padZero(s: string, length: number): string;
}
}
String.padZero = (s: string, length: number) => {
while (s.length < length) {
s = '0' + s;
}
return s;
};
console.log(String.padZero('hi', 5))
export {}
*下部の空のエクスポートは、もし
declare global
で
.ts
で、何もエクスポートしないでください。 これにより、ファイルがモジュールであることを強制します。*
もしあなたが、関数を
instance
(別名
prototype
),
declare global {
interface String {
padZero(length: number): string;
}
}
String.prototype.padZero = function (length: number) {
let d = String(this)
while (d.length < length) {
d = '0' + d;
}
return d;
};
console.log('hi'.padZero(5))
export {}
関連
-
[解決済み] TypeScriptで文字列を数値に変換する方法とは?
-
[解決済み] TypeScript で `window` に新しいプロパティを明示的に設定するにはどうすればよいですか?
-
[解決済み] TypeScriptでの取得と設定
-
[解決済み] TypeScriptでオブジェクトに動的にプロパティを割り当てるには?
-
[解決済み] TypeScriptのオブジェクトリテラルでの型定義
-
[解決済み] Typescript によるインターフェース型チェック
-
[解決済み】タイプ 'EventTarget' にプロパティ 'value' が存在しない。
-
[解決済み】TypeScriptで数値を文字列にキャストする方法
-
[解決済み] TypeScriptでObject.keysがkeyof型を返さないのはなぜですか?
-
Angular 2:ObservableをPromiseに変換する
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] describe'という名前が見つかりません。テストランナー用の型定義をインストールする必要がありますか?
-
[解決済み] ユニオン型からインターセクション型への変換
-
[解決済み] Angular 2でアプリ起動時にサービスを実行する方法
-
[解決済み] ngForとAsync Pipe Angular 2でObservableオブジェクトから配列を利用する。
-
[解決済み] typescriptでmoment.jsをインポートするには?
-
[解決済み] エラー Typescript Feature 1.5。現在の言語レベルは1.4です。
-
[解決済み] ジェネリック関数のTypescript ReturnType
-
[解決済み] TypeScript インポートパスエイリアス
-
[解決済み] 型 'null' は型 'T' に割り当てられません。
-
[解決済み] 新しい Typescript 1.8.4 のビルドエラー。" ビルド。Property 'result' がタイプ 'EventTarget' に存在しません。"