У меня возникли проблемы с добавлением определений пользовательских типов в Редактор Monaco с именами, начинающимися с символа @
. Вот пример, который должен иллюстрировать то, чего я пытаюсь достичь:
monaco.languages.typescript.typescriptDefaults.setCompilerOptions({
target: monaco.languages.typescript.ScriptTarget.ES2016,
allowNonTsExtensions: true,
module: monaco.languages.typescript.ModuleKind.CommonJS,
noEmit: true,
typeRoots: ["node_modules/@types"]
});
monaco.languages.typescript.typescriptDefaults.addExtraLib(
"export class Foo { }",
"node_modules/@types/@my-module/sub/index.d.ts"
);
monaco.editor.create(document.getElementById("container"), {
model: monaco.editor.createModel(
`import * as x from "@my-module/sub"`,
"typescript",
new monaco.Uri("main.ts")
)
});
Это не работает, потому что мой пользовательский модуль называется @my-module/sub
. Если в этом примере я заменю имя модуля на my-module/sub
, тогда все будет работать, как и ожидалось, и я получу Intellisense. Знаете ли вы, поддерживает ли Монако этот сценарий, и если да, то как правильно это сделать? Очевидно, что изменение имени моего модуля не вариант.
Вы можете попробовать этот фрагмент на Monaco Playground.