У меня есть закрытый пакет npm с заданной областью действия, package.json которого выглядит следующим образом:
{
"name": "@co/schema",
"version": "0.20.0",
"author": "jsmith",
"contributors": [],
"main": "lib/index.js",
"files": [
"lib"
],
"types": "./lib/index.d.ts",
"devDependencies": {
"@types/node": "12.7.4",
"graphql": "14.5.6",
"typescript": "3.6.2"
}
}
Я установил этот пакет в другом проекте.Проблема: при попытке импортировать из него определенный тип:
import { Derp } from '@co/schema';
Сам импорт не показывает ошибки, но когда я пытаюсь использовать тип:
myDerp: Derp = {};
, я получаю этоошибка: cannot use namespace Derp as a type
.
Итак, Derp определенно НЕ является пространством имен.Это интерфейс:
export interface Derp {
herp: string,
nerp: number,
flerp: string
}
Предлагаемое исправление, которое я видел, было: npm i @types/@co/schema -D
, но когда я пытаюсь это сделать, я получаю:
code EINVALIDPACKAGENAME
Invalid package name "@types/": name can only contain URL-friendly characters
Не могу сказать, что это тормозитна @ в названии моей области или как.
Так что да - как мне правильно импортировать (или экспортировать из моего личного модуля) эти типы?
Я удалил все по умолчанию экспорт, так как видел что рекомендовал где-то.Таким образом, каждый тип / интерфейс / что-либо экспортируется индивидуально, а не по умолчанию.Но сейчас я немного озадачен и не знаю, что еще попробовать.