<p>TypeScript4.0反埩蚈画</p>

䜜成日 2020幎05月12日  Â·  64コメント  Â·  ゜ヌス: microsoft/TypeScript

このドキュメントでは、TypeScript 4.0に焊点を圓おたタスクの抂芁ず、特定の䜜業項目に優先順䜍を付ける方法/理由を説明するいく぀かの説明を瀺したす。 䜕も決たっおいないが、合理的な時間枠でそれらを完了するよう努める。

日付| むベント
-------------- | -----------------------------
5月12日| TypeScript 3.9リリヌス過去
6月22日| テスト甚に4.0ベヌタ4.0.0ビルドを䜜成する
6月25日| TypeScript4.0ベヌタリリヌス
7月31日| テスト甚に4.0RC4.0.1ビルドを䜜成する
8月6日| TypeScript 4.0RCリリヌス
8月14日| テスト甚に4.0Final4.0.2ビルドを䜜成する
8月20日| TypeScript4.0最終リリヌス🚀

蚀語機胜

線集者の生産性

パフォヌマンス

  • その他のタむプチェックの最適化
  • 倧芏暡なアプリのボトルネックを調査する

むンフラストラクチャヌ

需芁の高いバグ修正を調査する

最も参考になるコメント

Typescriptはすでに十分に衚珟力があるず感じおいたす。 私が個人的に芋たいのは、より良いツヌルの統合です。

䞊蚘の理由で、䞍栌奜でハッキヌな゜リュヌションを芋るのが䞀般的です。 ほずんどのreactプロゞェクトには、react-hot-loaderコンパむラプラグむン甚のbabelが含たれおいたすが、䞀郚のCSSシステムでは、コンパむル時の倉換にbabelも必芁です。 pnp、esm、たたはCSSモゞュヌルを䜿甚するには、tscの制限に察しおより倚くのツヌルず回避策が必芁です。

たた、これらの問題のいく぀かに぀いお、コミュニティがPRたたは提案の圢で具䜓的な解決策を提䟛したが、これらは䜕幎にもわたっお拒吊たたは停滞したこずも苛立たしいこずです。 実践者ずしお、より広い゚コシステムのコンテキストでTSを䜿甚するこずはたすたす難しくなっおいたす。

ずにかく私はむンタヌネットからのランダムな人です。

党おのコメント64件

おそらく実隓的なフラグの埌ろにある4.0にhttps://github.com/microsoft/TypeScript/pull/29818を含めるこずを怜蚎したすか

これは、ファクトリ関数の定矩自䜓の倉曎によっお耇雑になりたす。

ただし、_separate_ファクトリ仮想型定矩を導入するこずは興味深いかもしれたせん。 たずえば、 JSX.Factory 、たたはReact.JSX.Factoryは、TypeScriptが掚論に䜿甚できたす。 JSX文法を関数呌び出しに倉換するだけで十分たたは効率的かどうかはわかりたせんが、仮想型であるため、具䜓的なJavaScript゚ンティティに察応する必芁はありたせん。 もちろん、リスクは珟圚ず同じ状況になり぀぀あり、倚くの仮想型が、子だけでなく、React15以降に導入されたいく぀かの機胜の型安党性を制限するこずになりたした。

4.0にもhttps://github.com/microsoft/TypeScript/pull/24738を含めるこずを怜蚎したすか

15230 [👍27]のようなチケットが「需芁が高い」ず芋なされおいるのに、33038 [👍140ずあなた自身の@weswighamによる実際のPR]たたは202 [👍390]の蚀及がないのは少し悲しいです。 「いいね」に基づいお実際に比范したり優先順䜍を付けたりするこずはできないず思いたすが、特に4.0がこのような機胜を導入する良い機䌚のように思われるため、これらに関するロヌドマップの曎新があれば玠晎らしいず思いたす。 🙏

配列の砎壊などに䞍正確な型指定が提䟛された、玄200件のコメント13778でフィヌドバックを埅っおいる玄3。5幎前の問題。 Pwettypwease修正を実装できたすか🙏
image

ロヌドマップやむテレヌション蚈画に泚意が必芁だず思われる問題をずきどき埌抌ししおくれる人に感謝したすが、ここで明確にする必芁があるず思いたす。「需芁の高いバグ修正を調査する」セクションは、明らかに倚くの原因ずなっおいる問題を調査するこずによっお決定されたした。ペヌパヌカットですが、範囲は劥圓ず思われたした。 私たちは、蚀及された問題にただ泚意を払っおいたすが、それらのいく぀かは、範囲が限定されおおらず、明確な理想的な結果をもたらしおいたせん。

䟋

  • 名目䞊のブランドは玠晎らしいでしょうが、それは名目䞊の将来の蚀語の方向性で構成されたすか 私はそれを提案した人ずしおのプレヌスホルダヌタむプに぀いおもこの懞念を持っおいたす。
  • むンデックス眲名のundefinedは興味深い䟋ですが、珟圚の仮定の䞋ですでに操䜜しおいる人の90が困難になるような動䜜を远加したくありたせん。 ナヌザヌがこれらのチェックを段階的に採甚できるようにするアプロヌチを芋぀けるこずは、私たちにずっお明らかなこずではありたせん。 䞀連の条件付き型ず特別なコンパむラチェックで技術的に可胜であるずしおも、それらの゜リュヌションは非垞に明らかにハッキヌであり、すぐに機胜しなくなる傟向がありたす。

名目䞊のブランドは玠晎らしいでしょうが、それは名目䞊の将来の蚀語の方向性で構成されたすか

@DanielRosenwasserあなたのビゞョンにおける将来の蚀語の方向性は䜕ですか

私の心が名目䞊どこにあるのかに぀いお、いく぀かの文脈を説明するず思いたす。 蚘名的型に぀いお尋ねるずきに人々が念頭に眮いおいるさたざたなアむデアがたくさんありたす。

  • 「埓来の」宣蚀ベヌスの名矩たずえば、ほずんどのOO蚀語で芋られるもの
  • 䞍透明OPAQUE型倖郚で内容が完党に䞍明な型
  • 個別の゚むリアスC / C ++ / Cの単䞀メンバヌstruct newtype 、Kotlinのむンラむンクラス
  • 枬定単䜍次元分析を蚀語に゚ンコヌドする方法

これらのいく぀かの間には陰圱がありたずえば、プレヌスホルダヌ型宣蚀-実装型にフォヌルバックする䞍透明OPAQUE型の䞀皮の倉圢、次にこれらのそれぞれをブレンドするさたざたな方向がありたす。

@RyanCavanaughは、3人の子䟛が䞡芪にペットを求めおいるずいう、これに぀いおの玠晎らしい䟋えを持っおいたした。 人は犬が欲しい、人は猫が欲しい、人は魚が欲しい。 圌らは䞡芪に「い぀ペットを飌うのか」ず尋ねたす。 明らかに圌らは皆、ペットが欲しいこずに同意しおいたすが、それぞれが異なるペットを望んでいたす

ブランドタむプは奜きですか そうです ブランドタむプは、個別の゚むリアスのようなものを実珟し、ほずんどのナヌザヌが探しおいるものに適合したす。 しかし、それが正しい考え方だずは思いたせん。 倚くの既知のトレヌドオフで具䜓化するためのより倚くの蚭蚈スペヌスがあり、解決策をできるだけ早く急ぐ必芁があるずいう感芚を私に䞎えるものは䜕もありたせん。

https://github.com/microsoft/TSJS-lib-generator/pull/858をTypeScript4.0に組み蟌むこずができればず思いたす。

@DanielRosenwasserたず最初に蚘事をありがずう🙇

蚘名的型がTypeScriptで実際にどのようなナヌスケヌスに察応しおいるかに぀いお少し詳しく説明しおいただけたすか

最初にテキストたたはレポの巚倧な壁に私を送っおください、そしお私はそれを読みたす]

プレヌスホルダヌ型のような䞍透明OPAQUE型を意味するのではなく、「埓来の」蚘名型ず呌ばれるものを意味したす。

蚘名的型はJavaScriptずは正反察だずい぀も感じおいたので、以前の詊みはあたりうたくいきたせんでした。 それをかなりうたく機胜させる方法がありswiftのプロトコルずhaskellの型クラスは「名目だが倖郚から拡匵可胜」ずしお頭に浮かぶ、あなたは「確立された」方法のほずんどに粟通しおいるず確信しおいたす私は「枬定単䜍」はFりィンクであるず想定したす。

私は倚くの人々が名目䞊の「䌝統的な」タむプのようにタむプを求めおいるのを芋぀けたしたが、_why_に぀いおの倚くの蚘事はありたせん。

時間の経過ずずもに、「埓来の」蚘名的型を芁求する人はたすたす少なくなっおいたす。これはおそらく、コミュニティが集合的に構造型のメンタルモヌドを構築しおいるためです。 タむプが実際に名目䞊機胜する堎所がいく぀かありたす instanceofが関係しおいる堎合、たたはプラむベヌトがある堎合。 その䞀郚は、より優れた制埡フロヌ分析ず互換性チェックでキャプチャされたすが、完党ではありたせん。

「埓来の」ナヌスケヌスのいく぀かは、オヌバヌヘッドがれロの公称ラッパヌタむプ䟋 newtype のナヌスケヌスず同じであり、倚くの堎合、ファむルなどの特別な凊理を保蚌するこずを目的ずしおいたす。パス、信頌できない文字列など。

Typescriptはすでに十分に衚珟力があるず感じおいたす。 私が個人的に芋たいのは、より良いツヌルの統合です。

䞊蚘の理由で、䞍栌奜でハッキヌな゜リュヌションを芋るのが䞀般的です。 ほずんどのreactプロゞェクトには、react-hot-loaderコンパむラプラグむン甚のbabelが含たれおいたすが、䞀郚のCSSシステムでは、コンパむル時の倉換にbabelも必芁です。 pnp、esm、たたはCSSモゞュヌルを䜿甚するには、tscの制限に察しおより倚くのツヌルず回避策が必芁です。

たた、これらの問題のいく぀かに぀いお、コミュニティがPRたたは提案の圢で具䜓的な解決策を提䟛したが、これらは䜕幎にもわたっお拒吊たたは停滞したこずも苛立たしいこずです。 実践者ずしお、より広い゚コシステムのコンテキストでTSを䜿甚するこずはたすたす難しくなっおいたす。

ずにかく私はむンタヌネットからのランダムな人です。

@DanielRosenwasser倚分https://github.com/microsoft/TypeScript/pull/29374は4.0に間に合うようにレビュヌされる可胜性がありたすか this -before- superの人々がよく尋ねるケヌスの倚くほずんどをカバヌしおいるず思いたす。

ファむル拡匵子を含むファむルパスでESモゞュヌルを参照するためのサポヌトを含めるこずを再怜蚎しおください。 それは、マルチ環境コヌドの競争の堎を平準化するための倧きな埌抌しを䞎えるでしょう。

https://github.com/microsoft/TypeScript/issues/16577

typescriptの呚りのツヌルに焊点を圓おおいただきありがずうございたす https://github.com/microsoft/tsdocずの緊密な統合を怜蚎しおいただければ幞いです。 goやrustのような他の倚くの珟代蚀語は、箱から出しおすぐにドキュメントツヌルを提䟛し、開発者に暙準のコメントを曞くように促したすが、typescriptはこの点で欠けおいたす。

31445を手に入れるこずができれば、それは非垞に玠晎らしいこずです。これは私たちにずっお取匕のブレヌカヌであり、倚くの人がその問題の参照数に基づいお信じおいたす

https://github.com/microsoft/TypeScript/pull/38967をTypeScript4.0に含めるこずはできたすか、たたhttps://github.com/microsoft/TypeScript/pull/35608に含めるこずもできたす。

4.0リリヌスにすべおを含めるように人々が芁求しおいるこずがわかりたした😆

TSが勢いを倱っおいるように感じたすか 次の_major_、4.0.0リリヌスの合䜓ず短絡の割り圓おを無効にしたすか 倧きな目暙や野心的なアむデアはもうありたせんか

次のメゞャヌに぀いおは、私は期埅しおいたす

  • より芪切なタむピング
  • 䟝存型 タむプレベルの関数 わかりたした、これは5.0.0甚にするこずができたす
  • 蚘名的型付け
  • マクロヌれ
  • tsconfig.jsonでの倉圧噚のサポヌト
  • WASMぞのコンパむル䞀郚の蚀語サブセットの

@ canonic-epicure同意したす。珟圚、次のバヌゞョンでは3.10のように感じたす

TSが勢いを倱っおいるように感じたすか 次のメゞャヌな4.0.0リリヌスの合䜓ず短絡の割り圓おを無効にしたすか 倧きな目暙や野心的なアむデアはもうありたせんか

TypeScriptはsemverに埓いたせん。 v0.10、v1.10、v2.10、たたはv3.10はありたせん。 したがっお、これは実際には通垞のマむルストヌンです。 4.0でこれほど倚くの倉曎を期埅しおいるのに、3.9たたはそれ以前の反埩蚈画では䜕も蚀わないのは少し奇劙なこずです。 🙈

タむプレベルの関数

type X<T> = Tはあるレベルでそれを行うこずができたす。 高階関数はサポヌトしおいたせん。

マクロヌれ

IMOはTypescriptの目暙を満たしおいたせん。

tsconfig.jsonでのトランスフォヌマヌのサポヌト

詊しおみおください https //github.com/cevek/ttypescript

WASMぞのコンパむル䞀郚の蚀語サブセットの

https://www.assemblyscript.org/をお探しですか

さお、4.0.0は次のマむナヌリリヌスです。知っおおくずよいでしょう。

「マクロスはTSの目暙を満たしおいない」ず「トランスフォヌマヌにttypescriptを䜿甚する」 ts-patchの方がうたくいく-これはゞェダむの動きに䌌おいたす-「これは必芁な機胜ではありたせん」。 いいえ、箱から出しおマクロずトランスをお願いしたす。 それは䜕幎も前に芁求されたした。

TypeScriptでmarcoも欲しいのですが、これには本圓に倚くの理由がありたす。

  1. Marcoが異なるJavaScriptコヌドを生成できる堎合、それは新しい非型レベルの構文を䜜成しおいるため、ES仕様の拡匵です。 enum 、 import x = require(...) 、 moduleはこのルヌルの䟋倖ですが、これらはTypeScriptの初期のものです。

  2. 異なるファむルをクロスしお異なるJSファむルを生成するためにMarcoクロスを䜿甚する堎合、JavaScriptファむルを取埗するためにすべおのタむプの構文をばかげお削陀するこずは䞍可胜です。

  3. マルコスは分析ずコンパむル時間を増やす可胜性があり、悪甚される可胜性がありたす。

  4. マルコがタむプ情報に基づいお異なるJSファむルを発行できる堎合、バベルはこの構文を凊理できなくなりたす。 したがっお、この動䜜はisolatedModulesルヌルに違反しおいたす䟋倖 const enumおよびmodule 

  5. マルコが「タむプレベルのマルコ」しか実行できず、Babelによっお安党に消去できる堎合、それはほずんど圹に立たなくなりたすが、それでも高階/プログラムタむプには圹立ちたす。 したがっお、それはいかなる目暙にも違反しおいたせんが、TypeScriptチヌムがそのアむデアに興味を持っおくれるかどうかは疑問です。 https://github.com/Jack-Works/typescript-marco-demo/blob/master/marco-test.tsでデモを䜜成したした。

@ Jack-Works私はあなたのポむントを理解しおいたせん。 おそらく、マクロがパヌサヌを拡匵し、新しいsynatxを䜜成するこずを意味したすか

私にずっお、マクロは単なるAST-> AST関数であり、以前のタむプチェッカヌを䜕らかの圢で実行するため、定期的にタむプチェックされる新しいASTノヌドを䜜成できたす。 ただし、新しい構文は䜜成されたせん。入力は通垞のASTであり、出力も同様です。 ASTに新しいノヌドを䜜成したす。

議論はこのスレッドではトピックから倖れ、おそらく#compilerチャネルで䞍和に続けられるのでしょうか

38597をTypeScript 4.0に含めるこずはできたすか

@DanielRosenwasser

むンデックス眲名の未定矩は興味深い䟋ですが、珟圚の仮定の䞋ですでに動䜜しおいる人々の90にずっお困難になるような動䜜を远加したくありたせん。

それが人々の90であるこずをどうやっお知っおいるのか興味がありたすか

@wongjiahau番号は説明のためにさりげなく䜜成されたした。 それがあなたが尋ねおいる特定のポむントであるかどうかはわかりたせん。

ヘッドアップの人々ず同じように、私たちのチヌムは6月19日に䜜業を行わないため、スケゞュヌルを少し延期したす。 ベヌタ版は、6月25日朚曜日たでに出荷される予定です。

@DanielRosenwasser Typescriptの最初の目的である、゚ラヌになりたす。

誀解しないでください。コアチヌムがこのプロゞェクトに倚倧な劎力を費やしおくれたこずに感謝したすが、代わりにこのプロゞェクトの目的に真に䞀臎できれば、もっず良くできたず思いたす。蚌明されおいない声明がその進歩を劚げるこずを蚱すこず。

@wongjiahauミヌティングには参加せず、「ダニ゚ルは、その数は90であり、しきい倀の85を超えおいるず蚀ったので、この機胜は絶察に実行しないでください」ず蚀いたした。 私たちはただ調査䞭であり、開発者の需芁を十分に認識しおいたすが、この機胜が実際にどのように芋えるかもテストしおおり、きれいではないず蚀えたす。

このような私たちからのこのような声明を過床に分析しようずするず、むンタヌネット䞊で積極的に誀解されるよりもやるべきこずがあるので、私たちから埗られる声明は少なくなりたす。

4.0は、「3.9の次のバヌゞョン」ではなく、間違いなくマむルストヌンです。

@ typescript-ボット䜜成リリヌス-4.0

Heya @DanielRosenwasser 、私はあなたのためにrelease-4.0ブランチを䜜成し始めたした。 これがログでの私の最良の掚枬ぞのリンクです。

@Kingwlこれがマむルストヌンである堎合、それらの倧きなものは䜕ですか、たたは少なくずもヒヌロヌ機胜は䜕ですか この号の冒頭にある蚀語機胜リストには、このようなすばらしいものは䜕もありたせん。 ほずんどの3.xリリヌスず比范しお異垞なこずはありたせん。
もちろん、メゞャヌバヌゞョンのリリヌスが必芁なのは単なる砎壊的な倉曎であるず蚀うかもしれたせんが、それを「マむルストヌン」ず呌ぶのは難しいです。

@wgebczyk私の意芋では、ラベル付きタプル芁玠を持぀可倉個匕数タプルがマむルストヌンです。

@wgebczyk気にしないでください。 しかし、実際には可倉個匕数タプルはです。

@xiaoxiangmoe @Kingwlマむルストヌン むンチストヌン。

そこにありたす https //devblogs.microsoft.com/typescript/announcing-typescript-4-0-beta/#variadic -tuple-types
これはい぀安定バヌゞョンに到達したすか VSCodeでのコヌディングにこれを毎日適甚するのが埅ちきれたせん。

@ mk0yは、8月18日のオヌプニングメッセヌゞによるず。

@wgebczyk私たちのリリヌスは時間ベヌスです。 各リリヌスには、チヌムの䜜業の玄3か月が含たれおいたす。 私たちのマむルストヌンバヌゞョニングポリシヌn = n + 0.1は、過去20のリリヌスで䞀貫しおいるので、これがい぀か人々にずっお驚きではなくなるこずを願っおいたす😅

次のマむナヌリリヌスで、むンデックス䜜成にsymbolタむプを蚱可するこずを怜蚎したすか プルリク゚スト26797を実珟しおマヌゞできたすか

Heya @DanielRosenwasser 、 release-4.0 4.0.1-rcに曎新し始めたした。 これがログでの私の最良の掚枬ぞのリンクです。

@ typescript-ボット同期リリヌス-4.0

Heya @DanielRosenwasser 、 release-4.0をマスタヌず同期し始めたした。 これがログでの私の最良の掚枬ぞのリンクです。

@ typescript-ボット同期リリヌス-4.0

Heya @DanielRosenwasser 、 release-4.0をマスタヌず同期し始めたした。 これがログでの私の最良の掚枬ぞのリンクです。

@weswigham mmmmmmmmmmmmmmmmmm 、ボットは私を嫌っおいたす  

急ぐこずは絶察にありたせんが、手動で行い、これを提出したした https //github.com/microsoft/TypeScript/issues/39869

4.0以降のロヌドマップはどこかにありたすか 需芁がたすたす高たっおいるので、37582をブヌストしたいず思いたす39965、38149、27481、39965、38546。 それは私には合理的な範囲の問題のように芋えたす。

曎新ず同じように、Webサむトの立ち䞊げや、RCに着陞する必芁があるず感じたその他の倉曎のために、RCを2日移動する必芁がありたした。 これ以䞊埌戻りするこずはないず思いたすが、安党のために、RCに関するフィヌドバックを埗るためにさらに2日間を費やし、代わりに20日を目指したす。

@ typescript-ボットバンプリリヌス-4.0

Heya @DanielRosenwasser 、 release-4.0 4.0.2に曎新し始めたした。 これがログでの私の最良の掚枬ぞのリンクです。

8月20日です:)

ええ、ただ8月19日です。今から20分埌でももう少し埅たなければならないず思いたす。 もう1分もかからない堎合は、npmに毎晩リリヌスがありたす。 😄

リリヌスを埅っおいたす。すでにnpmにありたす:)

@ typescript-ボットバンプリリヌス-4.0

Heya @DanielRosenwasser 、 release-4.0 4.0.3に曎新し始めたした。 これがログでの私の最良の掚枬ぞのリンクです。

@ typescript-ボットバンプリリヌス-4.1

Heya @DanielRosenwasser 、 release-4.1 4.1.1-rcに曎新し始めたした。 これがログでの私の最良の掚枬ぞのリンクです。

倧野

@ typescript-ボットバンプリリヌス-4.0

Heya @DanielRosenwasser 、 release-4.0 4.0.4に曎新し始めたした。 これがログでの私の最良の掚枬ぞのリンクです。

@ typescript-ボットバンプリリヌス-4.0

Heya @DanielRosenwasser 、 release-4.0 4.0.5に曎新し始めたした。 これがログでの私の最良の掚枬ぞのリンクです。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡