TypeScriptのJSDocスタイルの型付けには、通常の型の全機能がありますか

TypeScriptは "チューリング完了" と言われています。 JSDocスタイルの型付けは通常の型と同じくらい機能が充実していますか?写像型、条件付き型、keyofなど、そして通常の型のすべてのことができますか?

クラスファクトリミックスインを実装し、オブジェクトを受け付ける定義関数を定義し、そのオブジェクト定義から生成されたクラスを返すJSファイルの型を宣言したいのです。生成されたクラスは保護メンバーと非公開メンバーを持ち、ミックスインは保護メンバーと非公開メンバーを持つクラスを返すべきです。

私は .ts ファイルに変換せずにこれらを入力したいのですが、そのままJSコードを保存してください。

JSDocコメントで、オブジェクトリテラル定義から生成されたクラスやクラスファクトリミックスインなどのようなメタなものをタイプすることは可能ですか?

1
ru de
@RyanCavanaugh前者は、「TSのJS Docが、通常の型宣言や注釈と同じ概念をすべて表現できるかどうかを尋ねていますか」と考えます。
追加された 著者 trusktr,
@RyanCavanaugh前者は、「TSのJS Docが、通常の型宣言や注釈と同じ概念をすべて表現できるかどうかを尋ねていますか」と考えます。
追加された 著者 trusktr,
@RyanCavanaugh前者は、「TSのJS Docが、通常の型宣言や注釈と同じ概念をすべて表現できるかどうかを尋ねていますか」と考えます。
追加された 著者 trusktr,
@RyanCavanaugh前者は、「TSのJS Docが、通常の型宣言や注釈と同じ概念をすべて表現できるかどうかを尋ねていますか」と考えます。
追加された 著者 trusktr,
これは2つの異なる概念を融合しているようです。完全性をチューリングすることは、2段落目に記述されている表現力を意味するものでも、その逆もありません。 TSのJS Docが通常の型宣言/注釈と同じ概念をすべて表現できるかどうか、それともチューリングの完全なシステムかどうかを尋ねていますか?
追加された 著者 Ryan Cavanaugh,
これは2つの異なる概念を融合しているようです。完全性をチューリングすることは、2段落目に記述されている表現力を意味するものでも、その逆もありません。 TSのJS Docが通常の型宣言/注釈と同じ概念をすべて表現できるかどうか、それともチューリングの完全なシステムかどうかを尋ねていますか?
追加された 著者 Ryan Cavanaugh,

4 答え

TypeScriptで表現可能なすべての型がJSDocで表現できるわけではありません。例:

/**
 * @typedef Parameters
 * A tuple of the types of the parameters of a function.
 * @template T
 * @type {(T extends (...args: infer U) => * ? U : never)}
 */

Trying to use this type causes the TypeScript service to think that Paramaters = any. This means that conditional types are not supported.

一般に、JSDocで型がサポートされているかどうかは、それを書いてサービスがあきらめて any と言っただけであるかどうかで確認できます。

0
追加された
私の .js ファイルを説明するには、 .d.ts ファイルを使用します。 1つの .js ファイルですべてを実行したほうがいいでしょう。
追加された 著者 trusktr,

TypeScriptで表現可能なすべての型がJSDocで表現できるわけではありません。例:

/**
 * @typedef Parameters
 * A tuple of the types of the parameters of a function.
 * @template T
 * @type {(T extends (...args: infer U) => * ? U : never)}
 */

Trying to use this type causes the TypeScript service to think that Paramaters = any. This means that conditional types are not supported.

一般に、JSDocで型がサポートされているかどうかは、それを書いてサービスがあきらめて any と言っただけであるかどうかで確認できます。

0
追加された
私の .js ファイルを説明するには、 .d.ts ファイルを使用します。 1つの .js ファイルですべてを実行したほうがいいでしょう。
追加された 著者 trusktr,

TypeScriptで表現可能なすべての型がJSDocで表現できるわけではありません。例:

/**
 * @typedef Parameters
 * A tuple of the types of the parameters of a function.
 * @template T
 * @type {(T extends (...args: infer U) => * ? U : never)}
 */

Trying to use this type causes the TypeScript service to think that Paramaters = any. This means that conditional types are not supported.

一般に、JSDocで型がサポートされているかどうかは、それを書いてサービスがあきらめて any と言っただけであるかどうかで確認できます。

0
追加された
私の .js ファイルを説明するには、 .d.ts ファイルを使用します。 1つの .js ファイルですべてを実行したほうがいいでしょう。
追加された 著者 trusktr,

TypeScriptで表現可能なすべての型がJSDocで表現できるわけではありません。例:

/**
 * @typedef Parameters
 * A tuple of the types of the parameters of a function.
 * @template T
 * @type {(T extends (...args: infer U) => * ? U : never)}
 */

Trying to use this type causes the TypeScript service to think that Paramaters = any. This means that conditional types are not supported.

一般に、JSDocで型がサポートされているかどうかは、それを書いてサービスがあきらめて any と言っただけであるかどうかで確認できます。

0
追加された
私の .js ファイルを説明するには、 .d.ts ファイルを使用します。 1つの .js ファイルですべてを実行したほうがいいでしょう。
追加された 著者 trusktr,