Просто интересно, может кто-нибудь объяснить, почему возникает первая проблема с использованием импорта и как обе эти проблемы могут быть решены одновременно?
blockquote>Первая проблема возникает из-за того, что модуль
collectionsjs
не имеет файла объявления TypeScript. В результате компилятор TypeScript не имеет никакой информации о типеCollection
. Несмотря на то, что во время выполненияCollection
будет иметь определенный интерфейс, для компилятора типCollection
несколько 1 sup> эквивалентен этому:const Collection: any = {};
Способ решения проблем состоит в том, чтобы добавить объявление типа для модуля
collectionsjs
и создать тип, который описывает, что этот пакет экспортирует.Вот начало этого файла объявления типа:
collectionjs.d.ts
declare module 'collectionsjs' { export default class Collection { add(item); all(); } }
Чтобы завершить работу, добавьте каждый из публичные члены из
Collection
класса .
- Это только «в некоторой степени» эквивалентно типу
any
, потому что, хотя мы можемextend
Collection
, мы не можемextend
типаany
.
Попробуйте "perldoc-l":
$ perldoc-l Журнал::/usr/local/share/perl/5.26.1/Log/Dispatch.pm
ОтправкиThe answer can be found in the Perl FAQ list.
You should skim the excellent documentation that comes with Perl
perldoc perltoc
Буквально вчера я написал perl-скрипт, чтобы сделать именно это. Сценарий возвращает список модулей Perl, установленных в @INC, используя символ '::' в качестве разделителя. Вызовите сценарий с помощью -
perl perlmod.pl
ИЛИ
perl perlmod.pl <module name> #Case-insensitive(eg. perl perlmod.pl ftp)
На данный момент сценарий пропускает текущий каталог ('.' ), так как у меня были проблемы с рекурсивными софт-ссылками, но вы можете включить их, изменив функцию grep в строке 17 с
grep { $_ !~ '^\.$' } @INC
на just,
@INC
. Скрипт можно найти здесь.
Here is yet another command-line tool to list all installed .pm files:
Find installed Perl modules matching a regular expression