«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 ایراد دارند:
خط ششم:
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)
و پاس میشود!
در Exercism ثبتنام کنید تا TypeScript را همراه با 108 تمرین و مربیگری انسانی واقعی یاد بگیرید و در آن استاد شوید، همهی اینها رایگان.