typescript/no-base-to-string 正しさ
何を行うか
このルールは、文字列化時に有用な情報を提供するオブジェクトに対してのみ toString() および toLocaleString() メソッドが呼び出されるように制限します。
なぜこれは問題か
JavaScript の toString() メソッドは、プレーンオブジェクトに対して '[object Object]' を返すため、有用な情報とは言えません。このルールは、あまり有用でない文字列を返すオブジェクトに対して toString() や toLocaleString() が呼び出されないように防止します。
例
このルールに違反する 不適切な コードの例:
ts
// これらはすべて '[object Object]' に評価される
({}).toString();
({ foo: "bar" }).toString();
({ foo: "bar" }).toLocaleString();
// これは 'Symbol()' に評価される
Symbol("foo").toString();このルールに適合する 適切な コードの例:
ts
const someString = "Hello world";
someString.toString();
const someNumber = 42;
someNumber.toString();
const someBoolean = true;
someBoolean.toString();
class CustomToString {
toString() {
return "CustomToString";
}
}
new CustomToString().toString();設定
このルールは以下のプロパティを持つ設定オブジェクトを受け入れます。
checkUnknown
type: boolean
default: false
型が unknown である値についてもチェックするかどうか。 true にすると、unknown 値に対して toString が呼び出された場合に警告が発行されます。 デフォルトは false です。
ignoredTypeNames
type: string[]
default: ["Error", "RegExp", "URL", "URLSearchParams"]
安全と見なされる型名のリスト。これらの型はカスタム実装がなくても toString に対して安全と見なされます。
使用方法
設定ファイルまたは CLI でこのルールを有効化するには、次のように使用できます:
json
{
"rules": {
"typescript/no-base-to-string": "error"
}
}bash
oxlint --type-aware --deny typescript/no-base-to-string