مرحبًا ، لقد بدأت في استخدام TypeScript مؤخرًا. إنها لغة مفيدة للغاية بالنسبة لي :)
بالمناسبة ، أنا في برنامج تعليمي حول String Type
هنا https://www.typescriptlang.org/docs/handbook/basic-types.html
إصدار TypeScript:
1.8.10
الشفرة
_hello.ts_
let name: string = "bob";
عندما أقوم بالتجميع ، سيصدر المترجم ما يلي.
$ tsc hello.ts
../../usr/local/lib/node_modules/typescript/lib/lib.d.ts(16757,13): error TS2451: Cannot redeclare block-scoped variable 'name'.
hello.ts(1,5): error TS2451: Cannot redeclare block-scoped variable 'name'.
_hello.ts_
let aname: string = "bob";
قرأت جزءًا من lib.d.ts
ويحتوي على declare var name: string;
. لذلك قد أفهم أن المترجم يصدر خطأ. ولكن ما هو المفهوم الذي لا يمكننا استخدام المتغير name
في TypeScript؟
وأعتقد أن البرنامج التعليمي الذي لا يعمل ليس جيدًا :(
أم أن هناك خطأ ما معي؟ أتمنى أن أعيد الإجابة :)
نظرًا لوجود متغير يسمى name
على النطاق العالمي _. جربه في متصفحك console.log(name)
وسترى سلسلة فارغة (أو ربما سلسلة أخرى) بدلاً من undefined
.
ضع متغير اسمك في _module_ أو namespace
: https://basarat.gitbooks.io/typescript/content/docs/project/modules.html
توثيق هذا المتغير: https://developer.mozilla.org/en-US/docs/Web/API/Window/name : rose:
basarat
شكرا لاجابتك. هذا له مثل هذا المعنى ...
لم أكن أعرف أن هناك بالفعل متغير name
في النطاق العالمي :)
تضمين التغريدة
شكرًا لك على إصلاح المستند أيضًا :)
التعليق الأكثر فائدة
نظرًا لوجود متغير يسمى
name
على النطاق العالمي _. جربه في متصفحكconsole.log(name)
وسترى سلسلة فارغة (أو ربما سلسلة أخرى) بدلاً منundefined
.الإصلاح
ضع متغير اسمك في _module_ أو
namespace
: https://basarat.gitbooks.io/typescript/content/docs/project/modules.html