“Hello, World!” 会带你写一些 TypeScript 代码,并让你熟悉 Exercism 的工作流。完成它就能解锁 TypeScript 学习路线的其余内容。
观看我们的“Hello, World”入门视频,开始学习 👇
经典的入门练习。 只需要说“Hello, World!”。
“Hello, World!”是初学一门新的编程语言或进入一个新环境时,传统的第一个程序。
目标很简单:
如果一切顺利,你就可以去获取第一个真正的练习了。
按照 TypeScript 的设置说明安装所需的依赖:
https://exercism.org/docs/tracks/typescript/installation
安装练习所需的依赖:
$ yarn install
用以下命令执行测试:
$ yarn test
在很多测试套件中,除了第一个测试,其余测试都被跳过了。
当某个测试通过后,你可以把xit改成it,取消下一个测试的跳过状态。
本节会一步步带你解出这道练习。
这道练习有两个文件:
第一个文件是你写代码的地方。 第二个文件里定义了测试。
测试会检查你的代码是否做对了。 你不需要从零开始写出一个测试套件,但了解测试长什么样、在做什么,会有帮助。
打开测试文件 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)
这样就通过了!