Typescript VScode API为什么可以';我不知道现在的线路吗?
我正在使用typescript编写vs代码扩展,由于某些原因,我无法获取当前行 我试图实现的功能是:Typescript VScode API为什么可以';我不知道现在的线路吗?,typescript,visual-studio-code,text-editor,vscode-extensions,Typescript,Visual Studio Code,Text Editor,Vscode Extensions,我正在使用typescript编写vs代码扩展,由于某些原因,我无法获取当前行 我试图实现的功能是: function makeFrame() { vscode.window.activeTextEditor.selection.active.line; } 操作失败,出现错误:对象可能未定义 进口声明如下: import {window, commands, Disposable, ExtensionContext, StatusBarAlignment, StatusBarItem
function makeFrame()
{
vscode.window.activeTextEditor.selection.active.line;
}
操作失败,出现错误:对象可能未定义
进口声明如下:
import {window, commands, Disposable, ExtensionContext, StatusBarAlignment, StatusBarItem, TextDocument} from 'vscode';
我做错了什么
(我对打字脚本和编写VS代码扩展都是新手)
activeTextEditor
可能是未定义的
。这表示没有活动的编辑器,例如,当您第一次打开新工作区或关闭所有编辑器时,将发生这种情况
要解决此问题,只需添加一个快速检查:
function makeFrame()
{
const activeEditor = vscode.window.activeTextEditor;
if (activeEditor) {
activeEditor.selection.active.line;
}
}
对象可能未定义
因为可能有也可能没有activeEditor
您可以执行显式检查:
function makeFrame() {
const activeEditor = vscode.window.activeTextEditor;
if (activeEditor != null) {
activeEditor.selection.active.line;
}
}
或者,如果您确定:
function makeFrame()
{
vscode.window.activeTextEditor!.selection.active.line;
}