Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2022-04-13のJS: TypeScript 4.7 Beta、RedwoodJS 1.0、Sanitizer API #975

Merged
merged 19 commits into from
Apr 13, 2022

Conversation

azu
Copy link
Member

@azu azu commented Apr 13, 2022

TypeScript 4.7 Betaがリリースされました。

TypeScript 4.5 Betaで導入されNightlyでテストされていた、Node.jsのECMAScript Moduleサポートを再び有効化されています。
これに関連してpackage.jsonexportsフィールドのサポート、"module": "nodenext".mts/ctsの拡張子のサポートが追加されています。
また、Node.jsではファイルがモジュールかどうかはpackage.jsonmoduleフィールドなどによって暗黙的に異なります。
そのため、ファイルがモジュールかどうかを判定方法を制御できるmoduleDetectionオプションも追加して、強制的(force)にモジュールとして認識させることもできるようになっています。

型推論の改善として、Compuatedプロパティに対するコントロールフロー解析の改善、オブジェクトにおける関数の型推論の改善が含まれています。

Genericsの型を指定したaliasを定義できる Instantiation Expressionsをサポート。

const ErrorMap = Map<string, Error>;

inferに対するextendsでの推論条件の追加をサポート、型が共変(in)/反変(out)/不変(in out)なのかを指定できるアノテーションを追加されています。

モジュール解決持の探索方法をカスタマイズするmoduleSuffixesオプションの追加、import typeとReference Commentでresolution-modeを指定できるようになっています。


Making of: The Sanitizer API (Nullcon 2022) - Google スライドというスライドでは、HTML Sanitizer APIという策定中/実装中のウェブ標準について紹介されています。

信頼できないHTML文字列のインジェクトするときに、そのHTML文字列をサニタイズしてXSSを防止するためのAPIです。
最初は、HTML文字列をサニタイズしてHTML文字列を返すAPIとして進められていました、HTMLのパースモードの違いなどからパイパスする方法があることが発見されました。(HTML文字列という文字列のフラグメントに対するサニタイズは安全にはできないと分かった)

そのため、innerHTMLとよく似たsetHTMLという新しいAPIが策定され、このAPIにsanitizerを渡す形に変更された話が書かれています。

@azu azu merged commit 5052ed5 into develop Apr 13, 2022
@azu azu deleted the jser-week-587 branch April 13, 2022 01:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant