-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
Translate primitives Literals of playground examples into japanese #247
Changes from 3 commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
@@ -0,0 +1,65 @@ | ||||||
// TypeScriptには、ソースコードにリテラルを用いた | ||||||
// 特別な面白いケースがあります。 | ||||||
|
||||||
// これは、型の拡張・型の絞り込みにおいて、多くのサポートをもたらします。 | ||||||
// ( example:type-widening-narrowing ) | ||||||
// そして、はじめにそれを網羅する価値があります。 | ||||||
|
||||||
// リテラルは集合型よりも具体的なサブタイプです。 | ||||||
// どういうことかと言うと、型システム内部では | ||||||
// 「Hello World」は文字列ですが、文字列は「Hello World」ではありません。 | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. IMO
ちょっと型が多くてうるさいかもしれない。ただ、型システムの話してるので、文字列型と明示的にした方がいいかなと思いました There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. これも悩みどころですね。いずれも「literal type」「string type」とは原文に書かれていないため。 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 基本的に、訳者の意見を尊重でいいと思います 👍 |
||||||
|
||||||
const helloWorld = "Hello World"; | ||||||
let hiWorld = "Hi World"; // これはletなのでstring型です | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 文字列型かstring型か統一しないとですね。。。 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 文字列型に統一しています |
||||||
|
||||||
// この関数は、すべての文字列を受け入れます | ||||||
declare function allowsAnyString(arg: string); | ||||||
allowsAnyString(helloWorld); | ||||||
allowsAnyString(hiWorld); | ||||||
|
||||||
// この関数は、文字列リテラル「Hello World」のみを受け入れます | ||||||
declare function allowsOnlyHello(arg: "Hello World"); | ||||||
allowsOnlyHello(helloWorld); | ||||||
allowsOnlyHello(hiWorld); | ||||||
|
||||||
// これにより、共用体型を使用して特定のリテラルのみを受け入れる | ||||||
// APIを宣言することができます | ||||||
|
||||||
declare function allowsFirstFiveNumbers(arg: 1 | 2 | 3 | 4 | 5); | ||||||
allowsFirstFiveNumbers(1); | ||||||
allowsFirstFiveNumbers(10); | ||||||
|
||||||
let potentiallyAnyNumber = 3; | ||||||
allowsFirstFiveNumbers(potentiallyAnyNumber); | ||||||
|
||||||
// しかし、このルールは混み入ったオブジェクトには適用されません。 | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 原文的には「一見すると、このルールは複雑なオブジェクトには適用されないように見えます」みたいなas constを付けない挙動を導入として解説してから、後段で適用したかったらas const付けるとできるみたいなことを言いたいように見えるんですが、そこまで訳すか難しいところですね 👀 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. この線引きが結構難しいですよね。直訳すると「複雑」「混み入った」となるのですが、オブジェクトであれば何だってこうなりますし。。「一見すると」も何だか変なのでとったのですが悩みどころです。 |
||||||
|
||||||
const myUser = { | ||||||
name: "Sabrina" | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. IMO: Hello WorldがHello, 世界になってるPRが会った気がする
Suggested change
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. うーん、花子じゃだめなのか、みないな話になりそうなので。。この辺どうしましょう There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. たしかに、Gender Neutralな名前でないと厳しいかもですね‥ There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 良さそう |
||||||
}; | ||||||
|
||||||
// 定数として定義された `name:"Sabrina"` であっても | ||||||
// `name:string` に変換されてしまう様子を見てください。 | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. IMO
Suggested change
|
||||||
// この理由は、名前はいつでも変更できるからです。 | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. IMO
Suggested change
これ、名前ってなってますが、多分 name propertyのことっぽいですね。。。 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 直訳だと名前ですが、nameプロパティの方が親切だと思うので変更します |
||||||
|
||||||
myUser.name = "Cynthia"; | ||||||
|
||||||
// なぜならmyUserのnameプロパティは変更できるため、 | ||||||
// TypeScriptは型システムにおいてリテラルバージョンを使用できません。 | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
// しかしながら、次の機能でこれを許容することができます。 | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. IMO:
Suggested change
to do thisのthisを開いたのはちょっとやり過ぎかもしれないです There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. そうですね、これは書かれていない事なのでこのままとしたいです。 |
||||||
|
||||||
const myUnchangingUser = { | ||||||
name: "Fatma" | ||||||
} as const; | ||||||
|
||||||
// 「as const」がオブジェクトに適用されると、 | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. IMO: 日本語、受動態をそのままにするとすごく直訳感が出てしまう傾向がある気がする
Suggested change
|
||||||
// 変更できるオブジェクトの代わりに、 | ||||||
// 変更できないオブジェクトになります。 | ||||||
|
||||||
myUnchangingUser.name = "Raîssa"; | ||||||
|
||||||
// 「as const」は固定データのための素晴らしいツールであり、 | ||||||
// コード中であっても、インラインリテラルとして処理されます。 | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. IMO: 自信ないんですが、great tool forがfixtured dataとplacesに対して並列で係ってると思います
うーん、そのままの型が直訳っぽくて微妙。。。 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
としています |
||||||
// 「as const」は配列でも動作します。 | ||||||
|
||||||
const exampleUsers = [{ name: "Brian" }, { name: "Fahrooq" }] as const; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IMO:
用法だと薬っぽいかもしれない
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
とても面白い利用例があります。
としています