Typescript: اسمحوا الاسم: سلسلة = "بوب" ؛ لا يعمل.

تم إنشاؤها على ١٥ أبريل ٢٠١٦  ·  3تعليقات  ·  مصدر: microsoft/TypeScript

مرحبًا ، لقد بدأت في استخدام 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؟
وأعتقد أن البرنامج التعليمي الذي لا يعمل ليس جيدًا :(
أم أن هناك خطأ ما معي؟ أتمنى أن أعيد الإجابة :)

Question

التعليق الأكثر فائدة

نظرًا لوجود متغير يسمى name على النطاق العالمي _. جربه في متصفحك console.log(name) وسترى سلسلة فارغة (أو ربما سلسلة أخرى) بدلاً من undefined .

الإصلاح

ضع متغير اسمك في _module_ أو namespace : https://basarat.gitbooks.io/typescript/content/docs/project/modules.html

ال 3 كومينتر

نظرًا لوجود متغير يسمى 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 في النطاق العالمي :)

تضمين التغريدة
شكرًا لك على إصلاح المستند أيضًا :)

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات