typescript/no-deprecated 厳格
何をしますか
@deprecated としてマークされたコードの使用を禁止します。
なぜ悪いですか?
JSDoc の @deprecated タグは、あるコードが非推奨であることをドキュメント化するのに使用できます。非推奨とされているコードの使用を避けるのが最善です。このルールは、@deprecated としてマークされたコードへのすべての参照を報告します。
TypeScript は @deprecated タグを認識しており、エディタが非推奨コードを視覚的に示すことができます(通常は打ち消し線)。ただし、TypeScript 自体は非推奨コードに対して型エラーを報告しません。
例
このルールに違反する 誤った 例:
ts
/** @deprecated apiV2 を使ってください。 */
declare function apiV1(): Promise<string>;
declare function apiV2(): Promise<string>;
await apiV1(); // 非推奨関数の使用
import { parse } from "node:url";
// 'parse' は非推奨です。代わりに WHATWG URL API を使ってください。
const url = parse("/foo");このルールに従う 正しい 例:
ts
/** @deprecated apiV2 を使ってください。 */
declare function apiV1(): Promise<string>;
declare function apiV2(): Promise<string>;
await apiV2(); // 非非推奨関数の使用
// 現代的な Node.js API、new URL() を使用
const url2 = new URL("/foo", "http://www.example.com");設定
このルールは、次のプロパティを持つ設定オブジェクトを受け入れます。
allow
type: array
default: []
非推奨であっても使用を許可する型または値の指定子の配列です。意図的に継続して使用したい特定の非推奨な API に使用してください。
allow[n]
type: string
特定の宣言に一致させるための型または値の指定子
以下の4種類の指定子をサポートしています:
- 文字列指定子(非推奨):名前によるユニバーサルマッチ
json
"Promise"- ファイル指定子:ローカルファイルで宣言された型/値にマッチ
json
{ "from": "file", "name": "MyType" }
{ "from": "file", "name": ["Type1", "Type2"] }
{ "from": "file", "name": "MyType", "path": "./types.ts" }- Lib指定子:TypeScript 内部のライブラリ型にマッチ
json
{ "from": "lib", "name": "Promise" }
{ "from": "lib", "name": ["Promise", "PromiseLike"] }- パッケージ指定子:npm パッケージからの型/値にマッチ
json
{ "from": "package", "name": "Observable", "package": "rxjs" }
{ "from": "package", "name": ["Observable", "Subject"], "package": "rxjs" }使用方法
設定ファイルまたは CLI でこのルールを有効化するには、次のように使用できます:
json
{
"rules": {
"typescript/no-deprecated": "error"
}
}bash
oxlint --type-aware --deny typescript/no-deprecated