جافاسكريبت - استيراد JSON في تايب سكريبت


أنا جديد على تايب سكريبت. في مشروعي نستخدم تايب سكريبت 2، وفي أحد متطلباتي أحتاج إلى استيراد ملف JSON. لذا قمت بإنشاء ملف .d.ts كما يلي

 test.d.ts
declare module "*.json" {
    const value: any;
    export default value;
}

لقد قمت بتضمين هذا التعريف في ملف tsconfig.json الخاص بي واستيراده إلى ملف ts الخاص بي كما يلي

  test.ts
//<refrence path="./test.json"/>
import * as data from './test.json';

عندما أبني كودي أحصل على الخطأ التالي

Cannot find module './test.json'

ملاحظة: لا أريد استخدام Requirejs

شكراً

الإجابة رقم 1

مع TypeScript 2.9.+ يمكنك ببساطة استيراد ملفات JSON بأمان النوع وIntelliSense بهذا الشكل:

import testJson from './test.json';
console.log(testJson.yourPropertyName);

تأكد من إضافة هذه الإعدادات إلى ملف tsconfig.json الخاص بك:

"resolveJsonModule": true,
"esModuleInterop": true,

إذا كنت بحاجة إلى التعرف على البيانات كفئة محددة، يمكنك القيام بذلك بعد الاستيراد باستخدام as، على سبيل المثال:

const typedData = testJson as MyType[]