轨道
/
TypeScript
TypeScript
/
练习
/
你好,世界
你好,世界

你好,世界

教程练习

简介

“Hello, World!” 会带你写一些 TypeScript 代码,并让你熟悉 Exercism 的工作流。完成它就能解锁 TypeScript 学习路线的其余内容。

观看我们的“Hello, World”入门视频,开始学习 👇

说明

经典的入门练习。 只需要说“Hello, World!”。

“Hello, World!”是初学一门新的编程语言或进入一个新环境时,传统的第一个程序。

目标很简单:

  • 修改提供的代码,让它输出字符串“Hello, World!”。
  • 运行测试套件,确保它能通过。
  • 提交你的解答,并在网站上查看结果。

如果一切顺利,你就可以去获取第一个真正的练习了。

环境准备

按照 TypeScript 的设置说明安装所需的依赖:

https://exercism.org/docs/tracks/typescript/installation

要求

安装练习所需的依赖:

$ yarn install

让测试套件通过

用以下命令执行测试:

$ yarn test

在很多测试套件中,除了第一个测试,其余测试都被跳过了。

当某个测试通过后,你可以把xit改成it,取消下一个测试的跳过状态。

教程

本节会一步步带你解出这道练习。

这道练习有两个文件:

  • hello-world.ts
  • hello-world.test.ts

第一个文件是你写代码的地方。 第二个文件里定义了测试。

测试会检查你的代码是否做对了。 你不需要从零开始写出一个测试套件,但了解测试长什么样、在做什么,会有帮助。

打开测试文件 hello-world.test.ts。 里面只有一个测试:

it('says hello world', () => {
  expect(hello()).toEqual('Hello, World!')
})

现在在命令行里运行这个测试:

$ yarn test

测试失败了,这很正常,因为你还没有写任何代码。

失败信息是这样的:

    × says hello world (5ms)

  ● Hello World › says hello world

    expect(received).toEqual(expected) // deep equality

    Expected: "Hello, World!"
    Received: "Goodbye, Mars!"

      4 |
      5 |   it('says hello world', () => {
    > 6 |     expect(hello()).toEqual('Hello, World!')
        |                     ^
      7 |   })
      8 |
      9 | })

      at Object.it (hello-world.test.ts:6:32)

下面这些就是hello-world.test.ts文件里可能有问题的代码行:

第 6 行:

    expect(hello()).toEqual('Hello, World!')
                    ^

所以问题出在hello()函数调用上。 可以看到,测试期望的输出是'Hello, World!',但实际得到的却是"Goodbye, Mars!"。

那么现在来看看hello-worlds.ts文件里的这个函数:

export function hello(): string {
  return 'Goodbye, Mars!'
}

可以看到,这个函数返回了错误的字符串,这正是测试失败的原因。我们来修改返回值,把它修好:

export function hello(): string {
  return 'Hello, World!'
}

再运行一次测试:

 PASS  ./hello-world.test.ts
  Hello World
    √ says hello world (4ms)

这样就通过了!

通过 GitHub 编辑 链接将在新窗口或新标签页中打开
TypeScript Exercism

准备好开始 你好,世界 了吗?

注册 Exercism,借助 108 个练习 和真人导师指导,学习并掌握 TypeScript,全部免费。