Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TypeScript:Property';范围';类型上不存在_Typescript_Visual Studio Code_Vscode Extensions - Fatal编程技术网

TypeScript:Property';范围';类型上不存在

TypeScript:Property';范围';类型上不存在,typescript,visual-studio-code,vscode-extensions,Typescript,Visual Studio Code,Vscode Extensions,在vscode语言服务器协议中声明的类型: 导出声明类型TextDocumentContentChangeEvent={ /** *已更改文档的范围。 */ 范围:范围; /** *替换范围的可选长度。 * *@不推荐使用范围。 */ rangeLength?:数字; /** *所提供范围的新文本。 */ 文本:字符串; } | { /** *整个文件的新文本。 */ 文本:字符串; }; 当我使用change.range时,VSCode发布了一个错误:属性“range”在类型“{text:s

vscode语言服务器协议中声明的类型

导出声明类型TextDocumentContentChangeEvent={
/**
*已更改文档的范围。
*/
范围:范围;
/**
*替换范围的可选长度。
*
*@不推荐使用范围。
*/
rangeLength?:数字;
/**
*所提供范围的新文本。
*/
文本:字符串;
} | {
/**
*整个文件的新文本。
*/
文本:字符串;
};
当我使用
change.range
时,VSCode发布了一个错误:
属性“range”在类型“{text:string;}”上不存在


如何检查
change.range
或任何我使用错误的内容?

TextDocumentContentChangeEvent
是两种类型之一,其中只有一种类型具有
range
属性。你需要检查一下你有哪一种。如果您只需要
范围
,则可以在
中使用
进行检查:

if ("range" in change) {
    // You can use change.range here
}

由于只有联合体的一侧具有
范围
,TypeScript足够聪明,可以知道在
if
块中,
更改的完整类型是第一种类型(具有范围、范围长度和文本的类型),因此,您不必检查所有方法。

现在在
TextDocumentContentChangeEvent
命名空间中有两个方法:

是递增的
是完整的
,以检查
更改
是否具有
范围
范围长度
或仅
文本