[訳]Type Script 2.0候補版のリリース
5778 ワード
関連リンク
Type Script 2.0の正式版はすでに発表されています.〔訳〕Type Script 2.0の正式版は発表されていますが、もっと関心があるのはType Script 2.0の新しい特性です.
Announcing Type Script 2.0 RCAugust 30、2016 by Daniel Rosenwasser
Type Script 2.0候補発行版(RC)が出てきました.Type Script 2.0の最終発表からも遠くないです.いいです.Type Scriptをまだ使っていないなら、まずウェブサイトの教程を見てください.
RCバージョンを使うなら、Type Script 2.0 RC for Visual Studio 2015をダウンロードできます.NuGetを通じてダウンロードすることもできます.または以下のようにnpmを使います.
このRCバージョンは2.0の正式版の様子を見せてくれます.このバージョンを通じてユーザーフィードバックを広く集めて、2.0をより安定的で信頼できるように作ります.一般的には、RCバージョンは十分に安定しています.また、新しい特性を加えたくないです.
しかし、2.0 Betaのリリース以来、多くのものが追加されていますので、以下にはまだ聞いていない新しい特性があるかもしれません.
推論タイプ(Tagged Unions)
訳者注
Tagged Unionsの翻訳について、多くの資料を調べました.wikiでは、a tagged union、also caled a variant、variant record、discriminated union、disjunion、or sum typeを見つけました.その中でVeriantはVBでよく使われています.C菚対
推論のタイプはデーター構造で、連合(C/C++プログラマは必ずこの構造を知っています)に似ています.現在の構造の正確なタイプを識別するためのフィールドがあります.(What is a tagged unionを参照)
推論のタイプはJavaScriptをある方向にF〓、Swiftなどの言語に似ています.そのために、JavaScriptプログラマーたちはきっと喜ぶでしょう.この特性は、連携、相互反発、またはエージェントのタイプを識別することもできます.でも、特性自体は明らかに名称より面白いです.
2つのタイプがあると仮定すると、
Type Script 1.8において、取得面積の関数を書くと、
2.0では中間変数は不要です.言語はどのように
推論のタイプはJavaScriptという形式のコードをより簡潔で安全にします.例えば、Reduxのようなライブラリはよくこのような形でactionを処理します.独立する
より多くの字面タイプ
1.8が持ってきた文字列の字面タイプは、上で見たように推論タイプを処理するのに役に立ちます.
文字列以外に、もっと多くの種類を提供したいです.2.0では、それぞれの独特なブール、数値、または列挙メンバーが自分のタイプを持つことができます.
訳者注
Globsは直訳して「団块」という意味ですが、これは明らかに
tsconfig.jsonファイルを初めて紹介する時、すべてのファイルを手でリストするのは本当につらいです.Type Script 1.6は
Type Script 2.0はついにGlobs文法をサポートし始めました.Globsはパスの中でワイルドカードを使うことを許可します.そうすると、経路を書くのはもう味気ないことではないです. を除いています. を除いています. と一致する.
これからのこと
前に述べたように、Type Script 2.0はすぐに発表されましたが、RCバージョンを使うと2.0の新しい特性がコミュニティの発展に大きな役割を果たします.
もし問題が見つかったら、Githubを通してフィードバックしてください.私たちはあなたが試してくれたフィードバックを聞きたいです.楽しいように
Type Script 2.0の正式版はすでに発表されています.〔訳〕Type Script 2.0の正式版は発表されていますが、もっと関心があるのはType Script 2.0の新しい特性です.
Announcing Type Script 2.0 RCAugust 30、2016 by Daniel Rosenwasser
Type Script 2.0候補発行版(RC)が出てきました.Type Script 2.0の最終発表からも遠くないです.いいです.Type Scriptをまだ使っていないなら、まずウェブサイトの教程を見てください.
RCバージョンを使うなら、Type Script 2.0 RC for Visual Studio 2015をダウンロードできます.NuGetを通じてダウンロードすることもできます.または以下のようにnpmを使います.
npm install -g typescript@rc
Visual Studio CodeのユーザーがRCバージョンを使用したいのですが、ここを参照してください.このRCバージョンは2.0の正式版の様子を見せてくれます.このバージョンを通じてユーザーフィードバックを広く集めて、2.0をより安定的で信頼できるように作ります.一般的には、RCバージョンは十分に安定しています.また、新しい特性を加えたくないです.
しかし、2.0 Betaのリリース以来、多くのものが追加されていますので、以下にはまだ聞いていない新しい特性があるかもしれません.
推論タイプ(Tagged Unions)
訳者注
Tagged Unionsの翻訳について、多くの資料を調べました.wikiでは、a tagged union、also caled a variant、variant record、discriminated union、disjunion、or sum typeを見つけました.その中でVeriantはVBでよく使われています.C菚対
var
キーワードの翻訳を参照した後、私はそれを「推断タイプ」に翻訳することにした.推論のタイプはデーター構造で、連合(C/C++プログラマは必ずこの構造を知っています)に似ています.現在の構造の正確なタイプを識別するためのフィールドがあります.(What is a tagged unionを参照)
推論のタイプはJavaScriptをある方向にF〓、Swiftなどの言語に似ています.そのために、JavaScriptプログラマーたちはきっと喜ぶでしょう.この特性は、連携、相互反発、またはエージェントのタイプを識別することもできます.でも、特性自体は明らかに名称より面白いです.
2つのタイプがあると仮定すると、
Circle
およびSquare
は、それらのタイプを定義し、Shape
と命名する.interface Circle {
kind: "circle";
radius: number;
}
interface Square {
kind: "square";
sideLength: number;
}
type Shape = Circle | Square;
注意Circle
およびSquare
には、kind
というフィールドがあり、保存されている文字列定数は、タイプを表しています.つまりCircle
のkind
はいつも"circle"
です.各タイプには共通のフィールドがありますが、異なる値をマークとして区別します.Type Script 1.8において、取得面積の関数を書くと、
Shape
の各タイプを判断する必要がある.function getArea(shape: Shape) {
switch (shape.kind) {
case "circle":
// 'Shape' 'Circle'
let c = shape as Circle;
return Math.PI * c.radius ** 2;
case "square":
// 'Shape' 'Square'
let sq = shape as Square;
return sq.sideLength ** 2;
}
}
各図形のために中間変数を使用してコードを簡潔に見えることが分かりました.2.0では中間変数は不要です.言語はどのように
kind
を通してタイプを見分けますか?だから、コードを少なく書くことができます.function getArea(shape: Shape) {
switch (shape.kind) {
case "circle":
// 'shape' 'Circle'
return Math.PI * shape.radius ** 2;
case "square":
// 'shape' 'Square'
return shape.sideLength ** 2;
}
}
上のコードは完全に正しいです.Type Scriptはフロー制御によって各分岐上の正しいタイプを分析できます.--noImplicitReturns
および利用可能になる--strictNullChecks
の特性を使用して、これらの検査がより徹底的に行われることを保証することができる.推論のタイプはJavaScriptという形式のコードをより簡潔で安全にします.例えば、Reduxのようなライブラリはよくこのような形でactionを処理します.独立する
より多くの字面タイプ
1.8が持ってきた文字列の字面タイプは、上で見たように推論タイプを処理するのに役に立ちます.
文字列以外に、もっと多くの種類を提供したいです.2.0では、それぞれの独特なブール、数値、または列挙メンバーが自分のタイプを持つことができます.
type Digit = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9;
let nums: Digit[] = [1, 2, 4, 8];
// ! '16' 'Digit'!
nums.push(16);
このように推断タイプを使うと、違和感なく素早く対処できます.interface Success {
success: true;
value: T;
}
interface Failure {
success: false;
reason: string;
}
type Result = Success | Failure;
ここでのResult
タイプは、失敗を表すことができる.成功を表す場合、失敗の原因を示すreson
フィールドが含まれている値があります.value
フィールドは、success
がtrue
であるときにのみ有効である.declare function tryGetNumUsers(): Result;
let result = tryGetNumUsers();
if (result.success === true) {
// 'result' 'Success'
console.log(`Server reported ${result.value} users`);
}
else {
// 'result' 'Failure'
console.error("Error fetching number of users!", result.reason);
}
あなたはすでに気づいたかもしれません.エニュメレート・値は自分のタイプを持つこともできます.enum ActionType { Append, Erase }
interface AppendAction {
type: ActionType.Append;
text: string;
}
interface EraseAction {
type: ActionType.Erase;
numChars: number;
}
function updateText(currentText: string, action: AppendAction | EraseAction) {
if (action.type === ActionType.Append) {
// 'action' has type 'AppendAction'
return currentText + action.text;
}
else {
// 'action' has type 'EraseAction'
return currentText.slice(0, -action.numChars);
}
}
Globs文法、包含と排除訳者注
Globsは直訳して「団块」という意味ですが、これは明らかに
Globs
自体の意味より明らかです.だからここでは通訳という言葉がありません.Globsについては、node-blogのREADME.mdにおける説明を参照してください.tsconfig.jsonファイルを初めて紹介する時、すべてのファイルを手でリストするのは本当につらいです.Type Script 1.6は
excludes
構成を導入してこの問題を緩和しました.しかし、これは明らかに足りません.苦痛は、各ファイルのパスを書き終わっても問題が発生します.結果は新しいファイルを排除することを忘れたからです.Type Script 2.0はついにGlobs文法をサポートし始めました.Globsはパスの中でワイルドカードを使うことを許可します.そうすると、経路を書くのはもう味気ないことではないです.
include
およびexclude
の構成では、Globs構文が使用されてもよい.tsconfig.jsonの例を見てください.{
"include": [
"./src/**/*.ts"
],
"exclude": [
"./src/tests/**"
]
}
Type Script globs文法サポートは以下の通りです.*
は、0つ以上の文字にマッチしています.セパレータ(例えば、/
または\
)は、?
は1文字に正確にマッチしています.区切りは**/
は、任意の階層のサブディレクトリこれからのこと
前に述べたように、Type Script 2.0はすぐに発表されましたが、RCバージョンを使うと2.0の新しい特性がコミュニティの発展に大きな役割を果たします.
もし問題が見つかったら、Githubを通してフィードバックしてください.私たちはあなたが試してくれたフィードバックを聞きたいです.楽しいように