Skip to content

Commit

Permalink
Fix minor issues
Browse files Browse the repository at this point in the history
  • Loading branch information
Kingwl committed Feb 21, 2020
1 parent 8d09ba3 commit 155ce3c
Show file tree
Hide file tree
Showing 19 changed files with 40 additions and 39 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// 自动类型获取是指 TypeScript 是如何在后台从 npm 的 @types 下获取类型定义
// 从而为 JavaScript 用户提供更好的用户体验。

// 现在在线演示有与 TypeScript 中内置的类型湖区类似(但是有更多限制)的版本。
// 现在在线演示有与 TypeScript 中内置的类型获取类似(但是有更多限制)的版本。

// 您可以在代码中添加 import 来使用它,它通过 DefinitelyTyped 中的
// @types 或依赖项本身内部的 d.ts 文件来工作。
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
//// { compiler: { }, order: 1 }

// TypeScript 支持许多自动修复程序,来帮您修正妮妮的代码。例如如果
// TypeScript 支持许多自动修复程序,来帮您修正您的代码。例如如果
// 你选中第 5 行,然后点击弹出的灯泡,您将获得一些修复建议。

function addOne(x: number) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,6 @@ type Puppy = {
// 基于你不同的目的,这个区别可以是证明的也可以是负面的。
// 一般来说,对于公开的需要暴露的类型,将他们作为接口是更好的选择。

// 要查看接口和类型定义之间所有边际条件,下面的 stackoverflow 讨论是最好的资源之一:
// 要查看接口和类型定义之间所有边际条件,下面的 StackOverflow 讨论是最好的资源之一:

// https://stackoverflow.com/questions/37233735/typescript-interfaces-vs-types/52682220#52682220
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
// 权衡和取舍:简单性,可用性和健全性。

// TypeScript 的目标是支持所有的 JavaScript 代码,
// 且 为 JavaScript 添加类型支持时,语言趋向于简单易用。
// 且为 JavaScript 添加类型支持时,语言趋向于简单易用。

// 让我们看一些让 TypeScript 看起来没那么健全的例子,
// 并且去理解这些权衡和取舍是什么样子。
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
// 通过例子来讨论类型扩展(Widening)和缩小(Narrowing)可能是最容易的:
// 通过例子来研究类型扩展(Widening)和缩小(Narrowing)比较容易被接受:

const welcomeString = "Hello There";
let replyString = "Hey";

// 除了字符文本的差异外,welcomeString 是由 const 定义的 (代表值不会变),
// 除了字符文本的差异外,welcomeString 是由 const 定义的 (代表值不会变)
// replyString 是由 let 定义的(代表值可以被改变)。

// 如果你将鼠标悬停在每个变量上,你会看到 TypeScript 提供的非常不同的类型信息。
Expand Down Expand Up @@ -36,7 +36,7 @@ declare const quantumString: string | undefined;
quantumString.length;

// 在严格模式下,代码作者需要确保使用的类型已经缩小为非空类型。
// 通常来说,它就像添加一个 if 检查一样简单:
// 通常来说,它就像添加一个 if 检查一样简单

if (quantumString) {
quantumString.length;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ interface ArtworkSearchResponse {
}[];
}

// 如果接口是手工实现的,那么很容易会想到将 artworks 提取到一个接口中,类似于:
// 如果接口是手工实现的,那么很容易会想到将 artworks 提取到一个接口中,类似于

interface Artwork {
name: string;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ type MyPartialTypeForEdit<Type> = {

type CorrectMappedArtistForEdit = MyPartialTypeForEdit<Artist>;

// 这是对映射类型如何工作的一个非常简单的例子,但是涵盖了大多数基础知识
// 这是演示映射类型工作方式的一个非常简单的例子,并且涵盖了大多数基础知识
// 如果你想更深入的了解更多信息,可以查看手册:
//
// https://www.typescriptlang.org/docs/handbook/advanced-types.html#mapped-types
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Any 是 TypeScript 的一个例外,你可以用 any 来声明一段代码是
// 类似于 JavaScript 一样动态的,或者解决类型系统的一些限制。

// 解析 JSON 是一个很好的例子:
// 解析 JSON 是一个很好的例子

const myObject = JSON.parse("{}");

Expand Down Expand Up @@ -39,6 +39,6 @@ swap(pair);

// 如果你没有了解过元组,查看: example:tuples

// unknown 是 any 的同级别的类型,如果 any 代表着 ”我知道什么是正确的“,
// 那么 unknown 代表着 我不确定什么是正确的,所以你需要将类型告诉 TypeScript。“
// unknown 是 any 的同级别的类型,如果 any 代表着 ”我知道什么是正确的“
// 那么 unknown 代表着 我不确定什么是正确的,所以你需要将类型告诉 TypeScript”。
// example:unknown-and-never
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
// 建议首先了解一下他们。

// 字面量类型是一个类型中,更具体的一个子类型。
// 这意味着在类型系统中 Hello World 是一个字符串,
// 但是一个字符串并不一定是 Hello World
// 这意味着在类型系统中 Hello World 是一个字符串,
// 但是一个字符串并不一定是 Hello World

const helloWorld = "Hello World";
let hiWorld = "Hi World"; // 这里的类型是字符串,因为它是由 let 定义的。
Expand All @@ -16,7 +16,7 @@ declare function allowsAnyString(arg: string);
allowsAnyString(helloWorld);
allowsAnyString(hiWorld);

// 这个函数仅接受字符串字面量 Hello World
// 这个函数仅接受字符串字面量 Hello World
declare function allowsOnlyHello(arg: "Hello World");
allowsOnlyHello(helloWorld);
allowsOnlyHello(hiWorld);
Expand All @@ -37,7 +37,7 @@ const myUser = {
};

// 可以看到虽然它被定义为不可变,但是它依旧
// 将 `name: "Sabrina` 转换为 "name: string"。
// 将 `name: "Sabrina"` 转换为 "name: string"。
// 这是因为 name 依旧可以被改变。

myUser.name = "Cynthia";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ type AMessyUnion = "hello" | 156 | { error: true };
// 查看 example:literals

// 我们可以将多个不同的类型混合到一个联合类型中,
// 我们把他称为 "这个值的类型是这些类型之一"
// 我们把他称为 这个值的类型是这些类型之一

// 然后 TypeScript 将会让您确认在运行时如何确定它是哪个类型的值。

Expand Down Expand Up @@ -63,7 +63,7 @@ interface CreateArtistBioBase {
type CreateArtistBioRequest
= CreateArtistBioBase & { html: string } | { markdown: string }

// 现在您只有在包含 artistID 和 (html 或 markdown)
// 现在您只有在包含 artistID 和html 或 markdown
// 您才能创建对应的请求。

const workingRequest: CreateArtistBioRequest = {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
//// { order: 3, compiler: { strictNullChecks: true } }

// 当某种类型对于大多数代码来说都非常有用时,他们就会被添加到 TypeScript
// 中并且被大家使用。这意味着您可以依赖他们的可用性。
// 中并且被大家使用。这意味着您可以在代码中直接使用他们,而无需担心它们的可用性。

// Partial<Type>

Expand Down Expand Up @@ -29,9 +29,10 @@ type StickerFromAPI = Readonly<Sticker>

// 创建一个具有 KeysFrom 列表中所有指定属性的类型,并且将他们值的类型设置为 Type

// List which keys come from:
// 列出需要哪些 key。
type NavigationPages = 'home' | 'stickers' | 'about' | 'contact'

// 每个数据(上面的key ^)都需要的数据的形状。
// The shape of the data for which each of ^ is needed:
interface PageInfo {
title: string
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ const searchResults = {
audio: { name: "LEGO Movie Soundtrack" }
};

// 为什么不使用 undefined ?主要是因为您现在可以正确的校验 text 是否正确的被包含
// 为什么不使用 undefined ?主要原因是让您可以正确的校验 text 是否被包含
// 而如果 text 返回的是 undefined,那么这个值和没有被设置时相同。

// 这可能感觉没有什么用处,但是当转换为一个 JSON 字符串时,如果 text 是 undefined,
Expand All @@ -34,7 +34,7 @@ const searchResults = {
// (更多信息可以查看 example:code-flow)

// 一个让 TypeScript 将严格空检查打开的示例,将鼠标悬停
// 在下面的 "Potential String" 上。
// 在下面的 Potential String 上。

type PotentialString = string | undefined | null;

Expand All @@ -55,7 +55,7 @@ console.log("User Logged in: ", userID.toUpperCase());
const definitelyString1 = getID() as string;
const definitelyString2 = getID()!;

// 或者你可以通过 if 安全地检查是否存在:
// 或者你可以通过 if 安全地检查是否存在

if (userID) {
console.log(userID);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// 通常来说,一个数组包含某个类型的一个或多个对象。TypeScript 针对包含
// 多个类型的数组有特殊的分析,并且在数组中索引的位置非常重要。

// 这被称为元组 (Tuples),可以将他们视为连接数据的一种
// 这被称为元组(Tuples),可以将他们视为连接数据的一种
// 方式,但是语法上来说比有键的对象简单。

// 你可以像创建 JavaScript 的数组一样创建一个元组。
Expand Down
4 changes: 2 additions & 2 deletions packages/playground-examples/copy/zh/sections.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@
{
"name": "3.7",
"id": "3.7",
"subtitle": "查看 <a href='https://devblogs.microsoft.com/typescript/announcing-typescript-3-7/'> 版本更新说明</a>."
"subtitle": "查看<a href='https://devblogs.microsoft.com/typescript/announcing-typescript-3-7/'>版本更新说明</a>"
},
{
"name": "3.8",
"id": "3.8",
"subtitle": "查看 <a href='https://devblogs.microsoft.com/typescript/announcing-typescript-3-8-beta/'> 测试版本更新说明</a>."
"subtitle": "查看<a href='https://devblogs.microsoft.com/typescript/announcing-typescript-3-8-beta/'>beta 测试版本更新说明</a>"
},
{
"name": "在线演示 V3",
Expand Down
8 changes: 4 additions & 4 deletions packages/typescriptlang-org/src/copy/zh/documentation.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
export const docCopy = {
doc_layout_title: "学习 TypeScript 的起点",
doc_layout_description:
"找到针对 TypeScript 的入门项目:Angular、React Node.js 和 CLIs.",
"找到针对 TypeScript 的入门项目:Angular、React 或者 Node.js 与 CLI。",
doc_headline: "开始学习",
doc_headline_5m_title: "5 分钟入门 TS",
doc_headline_5m_blurb: "5 分钟了解语言",
Expand All @@ -13,13 +13,13 @@ export const docCopy = {
doc_headline_examples_blurb: "全面的在线演示实践教程",
doc_start_a_project: "开始一个项目",
doc_start_a_project_desc:
"由于 TypeScript 是 JavaScript 的超集,所以它没有默认的模板 - 这太多了。相反,其他项目在他们自己的环境中具有自己的 TypeScript 引导模板。这些项目提供了包含 TypeScript 支持的模板。 ",
"由于 TypeScript 是 JavaScript 的超集,所以它没有默认的模板——他们太多了。相反,其他项目在他们自己的环境中具有自己的 TypeScript 引导模板。这些项目提供了包含 TypeScript 支持的模板。",
doc_node_npm: "Node 和 NPM",
doc_node_npm_tsdx_blurb: "零配置构建 TypeScript 库。",
doc_node_npm_oclif_blurb: "创建您用户喜爱的命令行工具",
doc_node_npm_gluegun_blurb:
"一个令人愉悦的工具,用于构建由 TypeScript 驱动的命令行应用程序。",
doc_frameworks: "Web Frameworks",
doc_frameworks: "Web 框架",
doc_frameworks_angular_blurb:
"让编写优雅的程序充满乐趣",
doc_frameworks_react_blurb:
Expand Down Expand Up @@ -55,7 +55,7 @@ export const docCopy = {
doc_apps_make_code_blurb:
"通过有趣的项目将计算机科学带给所有学生",
doc_tooling: "工具",
doc_tooling_babel_blurb: "在现在使用下一代 JavaScript",
doc_tooling_babel_blurb: "现在即可使用下一代 JavaScript",
doc_tooling_parcel_blurb:
"快速,零配置的 Web 应用打包工具",
doc_tooling_webpack_blurb: "将您的资源,脚本,图片和样式打包",
Expand Down
2 changes: 1 addition & 1 deletion packages/typescriptlang-org/src/copy/zh/head-seo.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
export const headCopy = {
head_playground_title:
"在线演示 - 一个用于浏览 TypeScript 和 JavaScript 的在线编辑器",
"在线演示 - 一个用于 TypeScript 和 JavaScript 的在线编辑器",
head_playground_description:
"可以通过在线演示以安全且可共享的方式在线编写 TypeScript 和 JavaScript。",
tsconfig_title: "TSConfig 参考 - 所有 TSConfig 选项的文档",
Expand Down
10 changes: 5 additions & 5 deletions packages/typescriptlang-org/src/copy/zh/index.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
export const indexCopy = {
index_headline: "TypeScript 是 <bold>适用于任何规模的 JavaScript。</bold>",
index_byline:
"TypeScript 扩展了 JavaScript 以为语言添加类型支持。",
"TypeScript 扩展了 JavaScript ,为它添加了类型支持。",
index_summary:
"TypeScript 可以在您运行代码之前找到错误并提供修复,从而改善您的开发体验。",
index_locations:
Expand All @@ -11,26 +11,26 @@ export const indexCopy = {

index_what_is_js: "JavaScript,以及更多。",
index_what_is_js_copy: `
<p>TypeScript 是一个开源的编程语言,通过在 JavaScript(世界上最常用的工具之一) 的基础上添加静态类型定义构建而成。 </p>
<p>TypeScript 是一个开源的编程语言,通过在 JavaScript(世界上最常用的工具之一) 的基础上添加静态类型定义构建而成。</p>
<p>类型提供了一种描述对象形状的方法。可以帮助提供更好的文档,还可以让 TypeScript 验证你的代码可以正常工作。</p>
<p>在 TypeScript 中,不是每个地方都需要标注类型,因为类型推断允许您无需编写额外的代码即可获得大量功能。</p>`,

index_trust: "您可以信任的结果",
index_trust_copy_a: `所有有效的 JavaScript 代码同时也是有效的 TypeScript 代码。你也许会有类型检查的错误,但是这不会阻止你运行生成的 JavaScript。尽管您可以选择更严格的行为,但是这意味着一切依然在您的控制中。`,
index_trust_copy_b: `TypeScript 代码通过 TypeScript 编译器或 <babel>Babel</babel> 转译为 JavaScript 代码,生成后的代码也是干净,简洁,运行在任何可以运行 JavaScript 的地方,无论是在浏览器,Node.JS 还是再您的应用中。`,
index_trust_copy_b: `TypeScript 代码通过 TypeScript 编译器或 <babel>Babel</babel> 转译为 JavaScript 代码,生成后的代码也是干净,简洁,运行在任何可以运行 JavaScript 的地方,无论是在浏览器,Node.JS 还是在您的应用中。`,
index_standards: "与标准同步发展",
index_standards_copy: `
<p>TypeScript 团队为指导 JavaScript 语言发展的 TC39 委员会作出了贡献。</p>
<p>当新的功能到达 stage 3 阶段后,他们将被包含进 TypeScript。</p>
<p>例如 TypeScript 团队推进了 “可选链”,“空合并操作符”,throw 表达式和 regex 匹配索引之类的提案。</p>`,
<p>例如 TypeScript 团队推进了“可选链”,“空合并操作符”,throw 表达式和 regex 匹配索引之类的提案。</p>`,

index_gradual: "渐进式迁移",
index_gradual_copy: `
<p>使用 TypeScript 并不是一个二元选择,您可以首先使用 JSDoc 来注释现有的 JavaScript, 然后将一部分文件切换至由 TypeScript 检查,从而让您的代码可以随着时间的推移,逐渐完成迁移。</p>
<p>使用 TypeScript 并不是一个二元选择,您可以首先使用 JSDoc 来注释现有的 JavaScript,然后只让 TypeScript 检查一小部分文件,从而让您的代码可以在后续迭代中逐渐完成迁移。</p>
<p>TypeScript 的类型推导意味着只有您希望获得更佳的安全性时,才需要在您的代码中写更多的类型注释。</p>`,

Expand Down
2 changes: 1 addition & 1 deletion packages/typescriptlang-org/src/copy/zh/nav.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ export const navCopy = {
nav_search_aria: "搜索 TypeScript 网站",
nav_beta: "搜索 TypeScript 网站",
nav_beta_notification:
"注: 这是一个 beta 测试页面, 不要依赖这些 Url,并且 <a>在 microsoft/TypeScript-Website 提出问题</a>",
"注: 这是一个 beta 测试页面不要依赖这些 Url,并且 <a>在 microsoft/TypeScript-Website 提出问题</a>",
// let me know if you can't make this work in your lang:
// TypeScript X.Y [stable][between?]Z.Y[beta/rc]
nav_version_stable_prefix: "已经发布",
Expand Down
4 changes: 2 additions & 2 deletions packages/typescriptlang-org/src/copy/zh/playground.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ export const playCopy = {
play_sidebar_options_plugin_dev_option:
"访问 <code>localhost:5000/index.js</code>",
play_sidebar_options_plugin_dev_copy:
"在开发模式下自动尝试连接到在线演示的插件。你可以在这里查看更多 <a href='https://www.typescriptlang.org/v2/dev/playground-plugins/'>here</a>。",
"在开发模式下自动尝试连接到在线演示的插件。你可以在<a href='https://www.typescriptlang.org/v2/dev/playground-plugins/'>这里</a>查看更多。",
play_export_report_issue: "为 TypeScript 提交 Github issue。",
play_export_copy_md: "复制为 Markdown 格式的 issue 模板",
play_export_copy_link: "复制为 Markdown 格式的链接",
Expand All @@ -55,7 +55,7 @@ export const playCopy = {
const anExampleVariable = "Hello World"
console.log(anExampleVariable)
// 可以点击上方的 "实例""新闻,以了解更多关于语言的信息。"
// 可以点击上方的 “示例”“新闻”,以了解更多关于语言的信息。"
// 或者删除这些注释并且开始使用,整个在线演示的世界都属于你。
`,

Expand Down

0 comments on commit 155ce3c

Please sign in to comment.