js 'প্রকারের' শুধুমাত্র একটি .ts ফাইলে ব্যবহার করা যেতে পারে - ভিজুয়াল স্টুডিও কোড @ টিএস-চেক ব্যবহার করে


104

আমি ভিজুয়াল স্টুডিও কোডে কাজ করছি এমন নোড প্রকল্পে আমি টাইপস্ক্রিপ্ট ব্যবহার শুরু করছি। আমি প্রবাহের মতো "অপ্ট-ইন" কৌশলটি অনুসরণ করতে চেয়েছিলাম। তাই আমি এই ফাইলটির জন্য টিএস সক্ষম করার আশায় // @ts-checkআমার .jsফাইলের শীর্ষে রেখেছি । শেষ পর্যন্ত আমি "প্রবাহের" প্রবাহের একই অভিজ্ঞতা চাই, অতএব আমি TSLint প্লাগইনটি ইনস্টল করেছি যাতে আমি ইন্টেলিজেন্স সতর্কতা / ত্রুটিগুলি দেখতে পারি।

তবে আমার ফাইলটির মতো দেখতে:

// @ts-check

module.exports = {
  someMethod: (param: string): string => {
    return param;
  },
};

এবং আমার tsconfig.jsonফাইলটি দেখতে ...

{
  "compilerOptions": {
      "target": "es2016",
      "module": "commonjs",
      "allowJs": true
  }
}

আমি এই ত্রুটিটি পেয়েছি: [js] 'types' can only be used in a .ts file.চিত্রটিতে নীচে দেখানো হয়েছে।

ts এর জন্য vscode থেকে ত্রুটি

আমি এই প্রশ্নটি দেখেছি যা ভিসকোডে জাভাস্ক্রিপ্টের বৈধতা অক্ষম করার প্রস্তাব দিয়েছে তবে তারপরে এটি আমাকে কোনও টাইপস্ক্রিপ্ট ইন্টেলিজেন্স তথ্য প্রদর্শন করে না ।

TSLint এক্সটেনশন ডক্সে উল্লিখিত হিসাবে আমি আমার vscode সেটিংসে সেট tslint.jsEnableকরার চেষ্টা করেছি trueতবে সেখানে ভাগ্য নেই।

.jsটাইপস্ক্রিপ্টের সাথে ফাইলগুলি ব্যবহার করতে এবং ইন্টেলিসেন্স পেতে সঠিক সেটআপটি কী তাই আমি জানতে পারি যে কোনও টিএস কমান্ড চালানোর আগে আমার কোডে ত্রুটিগুলি কী?


টিএস-তে এক্সটেনশনটি পরিবর্তন করলে আপনার কি কোনও ত্রুটি আছে?
ইস্রায়েল জিংক

.tsআমাকে প্রত্যাশা অনুযায়ী টিএস ত্রুটি / সতর্কতা দেখানোর জন্য @ ইসরায়েল.জিংক এক্সটেনশন পরিবর্তন করছে । আমার ধারণা এটি কাজ করতে পারে তবে আমার @ts-checkসমস্ত এক্সটেনশান হিসাবে রাখার সময় আমি আরও বেশি বিকল্প পদ্ধতি ব্যবহারের আশা করছিলাম.js
জেমস


@ বুজডে-ডি ই এটি হতে পারে তবে সেখানে উত্তরগুলি সমস্যার সমাধান করেনি। আমি আমার মূল প্রশ্নে এটি উল্লেখ করেছি।
জেমস

উত্তর:


203

আমি vscode সহ @ ফ্লো ব্যবহার করছি তবে একই সমস্যা ছিল।

আমি এই পদক্ষেপগুলি দিয়ে এটি সমাধান করেছি:

  1. এক্সটেনশন ফ্লো ভাষা সমর্থন ইনস্টল করুন
  2. অন্তর্নির্মিত টাইপস্ক্রিপ্ট এক্সটেনশনটি অক্ষম করুন:

বিল্ট-ইন টাইপস্ক্রিপ্ট কীভাবে অক্ষম করবেন:

  1. যেতে এক্সটেনশন ট্যাব
  2. @ বিল্টিন টাইপস্ক্রিপ্ট এবং জাভাস্ক্রিপ্ট ভাষা বৈশিষ্ট্যগুলির জন্য অনুসন্ধান করুন
  3. অক্ষম ক্লিক করুন

5
গৃহীত উত্তর সর্বদা সঠিক হয় না। রিস্যাক্ট নেটিভ এবং ফ্লো সহ ভিএসকোডে একটি বাগ রয়েছে যা .js ফাইলগুলিতে একই বার্তা দেয় এবং সেই ক্ষেত্রে আপনি .ts এ পরিবর্তন করতে হবে না, তবে জেএস দিয়ে চালিয়ে যান এবং এখানে প্রস্তাবিত হিসাবে সমস্যাটি ঠিক করতে হবে !!
পাশুতে

105
কেবলমাত্র একটি এফওয়াইআই: এই এক্সটেনশানটি অক্ষম করা মূলত ভিএসকোডের সাহায্যে জেএস বিকাশের সমস্ত সুন্দর জিনিসকে বাতিল করে দেয়। পরিবর্তে, আপনার কেবলমাত্র আপনার সেটিংস "javascript.validate.enable": false
জেসন

1
যেমন @ হাইজ উল্লেখ করেছেন যে এটি প্রভাব ফেলবে, জাভাস্ক্রিপ্ট ফাইলগুলির উল্লেখ, অটোমোপলেশন ইত্যাদি জাভাস্ক্রিপ্ট ভাষার বৈশিষ্ট্যগুলি অক্ষম করবেন না।
অজিতসেন

2
বৈধ উত্তরটি @hez বলেছেন
অসীম ওলমেজ

1
@ হাইজ সংরক্ষণের জন্য ধন্যবাদ, আমি এটি জানতে পেরেছি। এখন কোনও ত্রুটি নেই। অবশেষে ভিজ্যুয়াল স্টুডিও কোড ব্যবহার করতে পারেন।
আনিস আরিয়া

94

"javascript.validate.enable": falseআপনার ভিএস কোড সেটিংসে ব্যবহার করুন , এটি ESLINT অক্ষম করে না। আমি ESLINT এবং প্রবাহ উভয়ই ব্যবহার করি। ভেস কোড সেটআপের জন্য নির্দেশাবলী কেবল অনুসরণ করুন

সেটিংস.জসনে এই লাইনটি যুক্ত করা হচ্ছে। সাহায্য "javascript.validate.enable": false


4
এটির সাথে আপনাকে টাইপস্ক্রিপ্ট অক্ষম করতে হবে না। উভয়ই থাকতে পারে। সব থেকে ভালো সমাধান!
নিরুস

2
আপনি যদি আপনার জাভাস্ক্রিপ্ট যাচাই করতে ESLint ব্যবহার করছেন, তবে এই উত্তরটি সেরা সমাধান। আরও তথ্য: কোড. visualstudio.com/docs/languages/… এবং github.com/flowtype/flow-for-vscode#setup
বিউ স্মিথ

1
সেটিংস.জসন ফাইলটি আমি কোথায় খুঁজে পাব?
i18n

1
হাই @ i18n এ যান: কোড -> পছন্দসমূহ -> সেটিংস -> এক্সটেনশানস -> নীচে স্ক্রোল করুন এবং "সেটিংসে সম্পাদনা করুন" আসলে এই অধীনে এক খুঁজে পেয়েছেন: Include Languages Enable Emmet abbreviations in languages that are not supported by default. Add a mapping here between the language and emmet supported language. E.g.: {"vue-html": "html", "javascript": "javascriptreact"}settings.json এ সম্পাদনা করুন এ ক্লিক করুন এবং এই যোগ করুন: "javascript.validate.enable": false
ফোটিস সাসকিরিস

সেরা .. আমার পক্ষে সূক্ষ্ম কাজ
বেতিনি ও। হেলেনো

1

আপনার অবশ্যই একটি .tsফাইল ব্যবহার করতে হবে - যেমন test.tsটাইপসক্রিপ্ট বৈধতা, বারের ইন্টেলিজেন্স typing, রিটার্নের ধরণের পাশাপাশি "টাইপড" ত্রুটি পরীক্ষা করা (যেমন stringকোনও numberপ্যারামের প্রত্যাশা এমন কোনও পদ্ধতিতে পাস করার ফলে ত্রুটি বেরিয়ে আসবে)।

এটি (স্ট্যান্ডার্ড) এর .js মাধ্যমেtsc স্থানান্তরিত হবে ।


আপডেট (11/2018):

ডাউন ভোট, খুব সহায়ক মন্তব্য এবং অন্যান্য উত্তরের উপর ভিত্তি করে স্পষ্টকরণের প্রয়োজন।

types

  • হ্যাঁ, আপনি ফাইলগুলিতে typeভিএস কোডে চেক করতে পারেন - যেমন অ্যানিমেশনটিতে দেখানো হয়েছে.js@ts-check

  • আমি মূলত যা টাইপস্ক্রিপ্টের জন্য উল্লেখ করছিলামtypes তা হ'ল এটির মতো এমন একটি বিষয় .tsযা পুরোপুরি একই জিনিস নয়:

    hello-world.ts

    function hello(str: string): string {
      return 1;
    }
    
    function foo(str:string):void{
       console.log(str);
    }

    এটি সংকলন করবে না। Error: Type "1" is not assignable to String

  • আপনি যদি জাভাস্ক্রিপ্ট hello-world.js ফাইলটিতে এই বাক্য গঠনটি ব্যবহার করে থাকেন :

    //@ts-check
    
    function hello(str: string): string {
      return 1;
    }
    
    function foo(str:string):void{
       console.log(str);
    }

    ওপি দ্বারা উল্লিখিত ত্রুটি বার্তাটি দেখানো হয়েছে: [js] 'types' can only be used in a .ts file

যদি আমি এমন কিছু মিস করি যা এটির পাশাপাশি ওপি'র প্রসঙ্গটিও অন্তর্ভুক্ত করে থাকে তবে দয়া করে যুক্ত করুন। আসুন সবাই শিখি।


আমি কয়েকটি নিবন্ধ পেয়েছি যা পরামর্শ দেয় যে আপনি জেএস ফাইলের মধ্যে টিএসের সমস্ত বৈশিষ্ট্য ব্যবহার করতে পারেন। এখানে স্ম্যাশিং ম্যাগাজিনের একটি, ভিসকোডের জন্য একটি গিটহাব ইস্যু যা সেটআপটি বর্ণনা করে, এবং ভিসকোডের জন্য
জেমস

@ jamez14 আমি চেষ্টা করিনি / প্রয়োজন ছিল না ব্যবহার .ts। IINM, নমুনা দেন ত্রুটি পরীক্ষা এবং intellisense । আপনার যে সমস্যা আছে (স্ট্যাটিক) হল typeআপনার ভেরিয়েবল ing, এবং বিনিময়ে typesপাশাপাশি - যেমন foo:string, bar:number, fubar:MyClass, myMethod(f:Array):void, anotherMethod():string। এইচটি ...
এডিএসএফ

হ্যাঁ, মনে হচ্ছে আপনি নিজের মূল্যায়নের সাথে ঠিক আছেন। উদাহরণগুলিতে আরও দেখার পরে, আমি দেখছি এটি @ts-checkগুণমান ব্যবহার করার সময় টিএস নয়, কেবল জেএস ত্রুটি পরীক্ষা করা। খুব বিভ্রান্তিকর ...
জেমস

-1

যে কেউ এখানে অবতরণ করেছে এবং অন্যান্য সমস্ত সমাধান কাজ করে নি তার জন্য এটি চেষ্টা করে দেখুন। আমি টাইপস্ক্রিপ্ট + প্রতিক্রিয়া ব্যবহার করছি এবং আমার সমস্যাটি হ'ল আমি ভিসকোডে ফাইলগুলি সংযুক্ত করে যাচ্ছি যাতে নীচের এন্ট্রিগুলির জন্য আপনার সেটিংস পরীক্ষা javascriptreactনা typescriptreactকরে।

   "files.associations": {
    "*.tsx": "typescriptreact",
    "*.ts": "typescriptreact"
  },
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.