我不明白为什么monaco editor不能处理typescript文件。
下面是我传递给编辑器的源代码:
import React from 'react';
import styles from './Test.scss';
export const Test = (foo: number) => {
return (
<div className={styles.container}>Test</div>
);
}和选项:
语言= typescript +
monaco.languages.typescript.typescriptDefaults.setCompilerOptions({
target: monaco.languages.typescript.ScriptTarget.Latest,
allowNonTsExtensions: true,
moduleResolution: monaco.languages.typescript.ModuleResolutionKind.NodeJs,
module: monaco.languages.typescript.ModuleKind.CommonJS,
noEmit: true,
esModuleInterop: true,
jsx: monaco.languages.typescript.JsxEmit.React,
reactNamespace: "React",
allowJs: true,
typeRoots: ["node_modules/@types"],
});所以我告诉编辑器“这是一个打字文件”,但是foo: number显示错误Type annotations can only be used in TypeScript files.(8010)
如何应对?
附注:这是一个web应用程序,即monaco editor不在VS代码中
发布于 2021-09-16 07:27:56
您没有将语言设置为"typescript“。这里的所有设置都在基础语言之上(例如JSX支持、脚本目标、模块解析等)。
要设置语言,可以使用editor.setModelLanguage(yourModel, "typescript"); (如果模型已经存在,例如编辑器中的默认模型),或者创建自己的模型并在创建调用中指定语言:editor.createModel(content, language, uri);。
检查ITextModel.getModeId();以查看它是否使用正确的语言。
https://stackoverflow.com/questions/69203395
复制相似问题