typescript - CSS ელემენტური კვანძების იმპორტირება Angular 6 აპლიკაციაში
მინდება დავაყენო და გამოვიყენო css-element-queries ბიბლიოთეკა.
ინსტალაციისთვის, მე გამოვიყენე შემდეგი ბრძანება:
npm i css-element-queries
ამის შემდეგ, მე ვცადე კლასი ResizeSensor ბიბლიოთეკიდან ასე შემომეტანა:
import { ResizeSensor } from 'css-element-queries';
მაგრამ კომპილატორი იღებს შემდეგ შეცდომას:
მოდულის 'css-element-queries'-ისთვის დეკლარაციის ფაილი ნაპოვნი არ არის. 'c:/PrjNET/Elevation3/FW/4.00/Mainline/Framework/Development/Client/ElevationJS/ngcore/node_modules/css-element-queries/index.js' implicitly აქვს 'any' ტიპი. სცადეთ
npm install @types/css-element-queriesთუ არსებობს, ან დაამატეთ ახალი დეკლარაციის (.d.ts) ფაილი, რომელიც შეიცავს `declare module 'css-element-queries';`
შეცდომის შეტყობინებაზე დაყრდნობით, მე ვცადე შემდეგი npm ბრძანების გაშვება:
npm install @types/css-element-queries
მაგრამ კომპილატორმა გამოიტანინა შემდეგი შეცდომა:
npm ERR! კოდი E404 npm ERR! 404 ვერ მოიძებნა: @types/css-element-queries@latest
როგორ შემიძლია css-element-queries ბიბლიოთეკის იმპორტი?
პასუხი #1
მე არ ვიყენებ Angular-ს, მაგრამ ცოტა ხნის წინ ვიყავი ტიპსკრიფტზე დაფუძნებულ აპლიკაციაში ResizeSensor-ის იმპორტირების შეხვედრისას. არ ვიცი, როდის დაამატა css-element-queries-მა ResizeSensor.d.ts, მაგრამ ახლა ის პაკეტის ნაწილი გახდა.
თუმცა, ის ფაილი არასწორია. მე ამისთვის დავაკისრე პრობლემა GitHub-ზე. გუშინ შევისწავლე, როგორ შეიძლება ის იმპორტირებული, და ბოლოს წავიკითხე ტერმინების ტიპების შესახებ და როგორ შექმნა typings ფაილი TypeScript-ის დოკუმენტაციაში.
ამან მე მიიყვანა სწორი გზისკენ, როგორ განსაზღვროთ ResizeSensor-ის ტიპების ფაილი. ძირითადად, აიღეთ ის GitHub-ის რეპოზიტორიიდან და შეცვალეთ ექსპორტის ხაზი ასე:
export default ResizeSensor;
თვის
export = ResizeSensor;
მაშინ შეგიძლიათ გამოიყენოთ ეს როგორც თქვენი იმპორტი:
import ResizeSensor = require('Libs/css-element-queries/ResizeSensor');
თქვენი გზა css-element-queries-ის მიმართ განსხვავებული იქნება, რადგან თქვენ ვერ შეძლებთ ამის წამოღებას npm-დან, სანამ პაკეტის მემკვიდრე არ გამოასწორებს .d.ts ფაილს.
აქ არის ბმული github-ის პრობლემაზე.
პასუხი #2
უპირისპიროდ იმ ფაქტს, რომ typings პაკეტი ჯერ არ არსებობს, მე შემიძლია გამოვიყენო css-element-queries პაკეტი შემდეგი იმპორტებით:
import * as ElementQueries from 'css-element-queries/src/ElementQueries';
import * as ResizeSensor from 'css-element-queries/src/ResizeSensor';
ატომი ჯერ კიდევ იძლევა ინფორმაციულ გაფრთხილებებს იმის შესახებ, რომ ვერ პოულობს დეკლარაციის ფაილს, მაგრამ ის მაინც მუშაობს. იმედი მაქვს, ეს დაეხმარება!
