Typescript: لا يمكن تطبيق عامل التشغيل "+" على النوعين "number []" و "-1000"

تم إنشاؤها على ١٢ سبتمبر ٢٠١٧  ·  1تعليق  ·  مصدر: microsoft/TypeScript

حصلت على وظيفة من هنا:
https://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript
ويقول TS إن هناك خطأ ، ولست متأكدًا مما إذا كان صحيحًا.
وفي حال لم يكن هذا خطأ ، ولكن ts لا تعتبر هذا خطأ - هل هناك أي طريقة لدعمه ؟
شكر.

إصدار TypeScript: 2.3.2 / ولكنه نفسه في الملعب: https://www.typescriptlang.org/play/index.html

الشفرة

  function uuidv4()
  {
    return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c =>
      (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)
    )
  }

سلوك متوقع:
لا خطأ؟
السلوك الفعلي:
Operator '+' cannot be applied to types 'number[]' and '-1000'.

Question

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

هذا ليس منتدى دعم.

يجب طرح الأسئلة في StackOverflow أو على Gitter.im .

لكن ... تحميك TypeScript من الإكراه الضمني ، لذلك عليك أن تجعل المصفوفة حرفية :

  function uuidv4()
  {
-    return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c =>
+    return ([1e7] as any + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c =>
      (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)
    )
  }

>كل التعليقات

هذا ليس منتدى دعم.

يجب طرح الأسئلة في StackOverflow أو على Gitter.im .

لكن ... تحميك TypeScript من الإكراه الضمني ، لذلك عليك أن تجعل المصفوفة حرفية :

  function uuidv4()
  {
-    return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c =>
+    return ([1e7] as any + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c =>
      (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)
    )
  }
هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

blendsdk picture blendsdk  ·  3تعليقات

Antony-Jones picture Antony-Jones  ·  3تعليقات

kyasbal-1994 picture kyasbal-1994  ·  3تعليقات

dlaberge picture dlaberge  ·  3تعليقات

CyrusNajmabadi picture CyrusNajmabadi  ·  3تعليقات